You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2018/04/17 14:46:43 UTC

[01/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site 5a9aefd52 -> a610f23a9


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.html
index 4ac2a98..a1a3896 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.html
@@ -160,30 +160,32 @@
 <span class="sourceLineNo">152</span>  public void testIsSameHdfs() throws IOException {<a name="line.152"></a>
 <span class="sourceLineNo">153</span>    String hadoopVersion = org.apache.hadoop.util.VersionInfo.getVersion();<a name="line.153"></a>
 <span class="sourceLineNo">154</span>    LOG.info("hadoop version is: "  + hadoopVersion);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    boolean isHadoop3 = hadoopVersion.startsWith("3.");<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    if (isHadoop3) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      // Hadoop 3.0.0 alpha1+ change default nn port to 9820. See HDFS-9427<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      testIsSameHdfs(9820);<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    } else {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      // pre hadoop 3.0.0 defaults to port 8020<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      testIsSameHdfs(8020);<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  }<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>  /**<a name="line.165"></a>
-<span class="sourceLineNo">166</span>   * Version of DFS that has HDFS-4525 in it.<a name="line.166"></a>
-<span class="sourceLineNo">167</span>   */<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  static class IsFileClosedDistributedFileSystem extends DistributedFileSystem {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    /**<a name="line.169"></a>
-<span class="sourceLineNo">170</span>     * Close status of a file. Copied over from HDFS-4525<a name="line.170"></a>
-<span class="sourceLineNo">171</span>     * @return true if file is already closed<a name="line.171"></a>
-<span class="sourceLineNo">172</span>     **/<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    @Override<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    public boolean isFileClosed(Path f) throws IOException{<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      return false;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    }<a name="line.176"></a>
-<span class="sourceLineNo">177</span>  }<a name="line.177"></a>
-<span class="sourceLineNo">178</span>}<a name="line.178"></a>
+<span class="sourceLineNo">155</span>    boolean isHadoop3_0_0 = hadoopVersion.startsWith("3.0.0");<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    if (isHadoop3_0_0) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      // Hadoop 3.0.0 alpha1+ ~ 3.0.0 GA changed default nn port to 9820.<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      // See HDFS-9427<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      testIsSameHdfs(9820);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    } else {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      // pre hadoop 3.0.0 defaults to port 8020<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      // Hadoop 3.0.1 changed it back to port 8020. See HDFS-12990<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      testIsSameHdfs(8020);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>  /**<a name="line.167"></a>
+<span class="sourceLineNo">168</span>   * Version of DFS that has HDFS-4525 in it.<a name="line.168"></a>
+<span class="sourceLineNo">169</span>   */<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  static class IsFileClosedDistributedFileSystem extends DistributedFileSystem {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    /**<a name="line.171"></a>
+<span class="sourceLineNo">172</span>     * Close status of a file. Copied over from HDFS-4525<a name="line.172"></a>
+<span class="sourceLineNo">173</span>     * @return true if file is already closed<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     **/<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    public boolean isFileClosed(Path f) throws IOException{<a name="line.176"></a>
+<span class="sourceLineNo">177</span>      return false;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>}<a name="line.180"></a>
 
 
 


[12/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html
index bee8222..7a938de 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html
@@ -72,7 +72,7 @@
 <span class="sourceLineNo">064</span>/**<a name="line.64"></a>
 <span class="sourceLineNo">065</span> * Tests ReplicationSource and ReplicationEndpoint interactions<a name="line.65"></a>
 <span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@Category({ReplicationTests.class, MediumTests.class})<a name="line.67"></a>
+<span class="sourceLineNo">067</span>@Category({ ReplicationTests.class, MediumTests.class })<a name="line.67"></a>
 <span class="sourceLineNo">068</span>public class TestReplicationEndpoint extends TestReplicationBase {<a name="line.68"></a>
 <span class="sourceLineNo">069</span><a name="line.69"></a>
 <span class="sourceLineNo">070</span>  @ClassRule<a name="line.70"></a>
@@ -86,317 +86,317 @@
 <span class="sourceLineNo">078</span>  @BeforeClass<a name="line.78"></a>
 <span class="sourceLineNo">079</span>  public static void setUpBeforeClass() throws Exception {<a name="line.79"></a>
 <span class="sourceLineNo">080</span>    TestReplicationBase.setUpBeforeClass();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    admin.removePeer("2");<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  @AfterClass<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  public static void tearDownAfterClass() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    TestReplicationBase.tearDownAfterClass();<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    // check stop is called<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() &gt; 0);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  }<a name="line.90"></a>
-<span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>  @Before<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  public void setup() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    ReplicationEndpointForTest.contructedCount.set(0);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    ReplicationEndpointForTest.startedCount.set(0);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    ReplicationEndpointForTest.replicateCount.set(0);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    ReplicationEndpointForTest.lastEntries = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    final List&lt;RegionServerThread&gt; rsThreads =<a name="line.99"></a>
-<span class="sourceLineNo">100</span>        utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    for (RegionServerThread rs : rsThreads) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    // Wait for  all log roll to finish<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    utility1.waitFor(3000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      @Override<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      public boolean evaluate() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>        for (RegionServerThread rs : rsThreads) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span>            return false;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>          }<a name="line.111"></a>
-<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>        return true;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>      @Override<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      public String explainFailure() throws Exception {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        List&lt;String&gt; logRollInProgressRsList = new ArrayList&lt;&gt;();<a name="line.118"></a>
-<span class="sourceLineNo">119</span>        for (RegionServerThread rs : rsThreads) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>            logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.121"></a>
-<span class="sourceLineNo">122</span>          }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>        }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>        return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      }<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    });<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>  @Test<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  public void testCustomReplicationEndpoint() throws Exception {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    // test installing a custom replication endpoint other than the default one.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    admin.addPeer("testCustomReplicationEndpoint",<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.133"></a>
-<span class="sourceLineNo">134</span>            .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    // check whether the class has been constructed and started<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      public boolean evaluate() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        return ReplicationEndpointForTest.contructedCount.get() &gt;= numRegionServers;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      }<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    });<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      @Override<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      public boolean evaluate() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>        return ReplicationEndpointForTest.startedCount.get() &gt;= numRegionServers;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      }<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    });<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>    // now replicate some data.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    doPut(Bytes.toBytes("row42"));<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      public boolean evaluate() throws Exception {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      }<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    });<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>    doAssert(Bytes.toBytes("row42"));<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>    admin.removePeer("testCustomReplicationEndpoint");<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>  @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    int peerCount = admin.getPeersCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    admin.addPeer(id,<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.175"></a>
-<span class="sourceLineNo">176</span>        .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    // debug.  Peer needs to be up for the edit to make it across. This wait on<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    // peer count seems to be a hack that has us not progress till peer is up.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    if (admin.getPeersCount() &lt;= peerCount) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      Threads.sleep(100);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    // now replicate some data<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    doPut(row);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      public boolean evaluate() throws Exception {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        // only send over one edit.<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        LOG.info("count=" + count);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>        return ReplicationEndpointReturningFalse.replicated.get();<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    });<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      throw ReplicationEndpointReturningFalse.ex.get();<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>    admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.201"></a>
-<span class="sourceLineNo">202</span>  }<a name="line.202"></a>
-<span class="sourceLineNo">203</span><a name="line.203"></a>
-<span class="sourceLineNo">204</span>  @Test<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  public void testInterClusterReplication() throws Exception {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    final String id = "testInterClusterReplication";<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>    List&lt;HRegion&gt; regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    int totEdits = 0;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>    // Make sure edits are spread across regions because we do region based batching<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    // before shipping edits.<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    for(HRegion region: regions) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      RegionInfo hri = region.getRegionInfo();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      byte[] row = hri.getStartKey();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      for (int i = 0; i &lt; 100; i++) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        if (row.length &gt; 0) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>          Put put = new Put(row);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          put.addColumn(famName, row, row);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          region.put(put);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>          totEdits++;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        }<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      }<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>    admin.addPeer(id,<a name="line.226"></a>
-<span class="sourceLineNo">227</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.227"></a>
-<span class="sourceLineNo">228</span>            .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        null);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>    final int numEdits = totEdits;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      public boolean evaluate() throws Exception {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>      @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      public String explainFailure() throws Exception {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.240"></a>
-<span class="sourceLineNo">241</span>            + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>        return failure;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      }<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    });<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>    admin.removePeer("testInterClusterReplication");<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    utility1.deleteTableData(tableName);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  @Test<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.252"></a>
-<span class="sourceLineNo">253</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    //test that we can create mutliple WALFilters reflectively<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        EverythingPassesWALEntryFilter.class.getName() +<a name="line.256"></a>
-<span class="sourceLineNo">257</span>            "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    // now replicate some data.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      doPut(connection, Bytes.toBytes("row1"));<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      doPut(connection, row);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      doPut(connection, Bytes.toBytes("row2"));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      public boolean evaluate() throws Exception {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    });<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>    Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    //make sure our reflectively created filter is in the filter chain<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span>  @Test (expected=IOException.class)<a name="line.279"></a>
-<span class="sourceLineNo">280</span>  public void testWALEntryFilterAddValidation() throws Exception {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    //test that we can create mutliple WALFilters reflectively<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        "IAmNotARealWalEntryFilter");<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  }<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span>  @Test (expected=IOException.class)<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.291"></a>
-<span class="sourceLineNo">292</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    //test that we can create mutliple WALFilters reflectively<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.294"></a>
-<span class="sourceLineNo">295</span>        "IAmNotARealWalEntryFilter");<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>  }<a name="line.297"></a>
+<span class="sourceLineNo">081</span>    numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  @AfterClass<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  public static void tearDownAfterClass() throws Exception {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    TestReplicationBase.tearDownAfterClass();<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    // check stop is called<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() &gt; 0);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>  @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  public void setup() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    ReplicationEndpointForTest.contructedCount.set(0);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    ReplicationEndpointForTest.startedCount.set(0);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    ReplicationEndpointForTest.replicateCount.set(0);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    ReplicationEndpointForTest.lastEntries = null;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    final List&lt;RegionServerThread&gt; rsThreads =<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    for (RegionServerThread rs : rsThreads) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    // Wait for  all log roll to finish<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    utility1.waitFor(3000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      public boolean evaluate() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        for (RegionServerThread rs : rsThreads) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>            return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>          }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        return true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>      @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      public String explainFailure() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        List&lt;String&gt; logRollInProgressRsList = new ArrayList&lt;&gt;();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        for (RegionServerThread rs : rsThreads) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>            logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.120"></a>
+<span class="sourceLineNo">121</span>          }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    });<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>  @Test<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  public void testCustomReplicationEndpoint() throws Exception {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // test installing a custom replication endpoint other than the default one.<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    admin.addPeer("testCustomReplicationEndpoint",<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.132"></a>
+<span class="sourceLineNo">133</span>            .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>    // check whether the class has been constructed and started<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      public boolean evaluate() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        return ReplicationEndpointForTest.contructedCount.get() &gt;= numRegionServers;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    });<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      public boolean evaluate() throws Exception {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        return ReplicationEndpointForTest.startedCount.get() &gt;= numRegionServers;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    });<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    // now replicate some data.<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    doPut(Bytes.toBytes("row42"));<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      public boolean evaluate() throws Exception {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    });<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>    doAssert(Bytes.toBytes("row42"));<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>    admin.removePeer("testCustomReplicationEndpoint");<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>  @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    int peerCount = admin.getPeersCount();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    admin.addPeer(id,<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    // debug.  Peer needs to be up for the edit to make it across. This wait on<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    // peer count seems to be a hack that has us not progress till peer is up.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    if (admin.getPeersCount() &lt;= peerCount) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      Threads.sleep(100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    // now replicate some data<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    doPut(row);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      public boolean evaluate() throws Exception {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        // only send over one edit.<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        LOG.info("count=" + count);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        return ReplicationEndpointReturningFalse.replicated.get();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    });<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      throw ReplicationEndpointReturningFalse.ex.get();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    }<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>    admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  public void testInterClusterReplication() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    final String id = "testInterClusterReplication";<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>    List&lt;HRegion&gt; regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    int totEdits = 0;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>    // Make sure edits are spread across regions because we do region based batching<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    // before shipping edits.<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    for(HRegion region: regions) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      RegionInfo hri = region.getRegionInfo();<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      byte[] row = hri.getStartKey();<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      for (int i = 0; i &lt; 100; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        if (row.length &gt; 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          Put put = new Put(row);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>          put.addColumn(famName, row, row);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          region.put(put);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>          totEdits++;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>    admin.addPeer(id,<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.226"></a>
+<span class="sourceLineNo">227</span>            .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        null);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>    final int numEdits = totEdits;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      public boolean evaluate() throws Exception {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>      @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      public String explainFailure() throws Exception {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.239"></a>
+<span class="sourceLineNo">240</span>            + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        return failure;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    });<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>    admin.removePeer("testInterClusterReplication");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    utility1.deleteTableData(tableName);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>  @Test<a name="line.249"></a>
+<span class="sourceLineNo">250</span>  public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    //test that we can create mutliple WALFilters reflectively<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        EverythingPassesWALEntryFilter.class.getName() +<a name="line.255"></a>
+<span class="sourceLineNo">256</span>            "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    // now replicate some data.<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      doPut(connection, Bytes.toBytes("row1"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      doPut(connection, row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      doPut(connection, Bytes.toBytes("row2"));<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      public boolean evaluate() throws Exception {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      }<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    });<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span>    Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    //make sure our reflectively created filter is in the filter chain<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>  @Test (expected=IOException.class)<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  public void testWALEntryFilterAddValidation() throws Exception {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    //test that we can create mutliple WALFilters reflectively<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        "IAmNotARealWalEntryFilter");<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>  @Test (expected=IOException.class)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>  public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    //test that we can create mutliple WALFilters reflectively<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        "IAmNotARealWalEntryFilter");<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>  }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
 <span class="sourceLineNo">298</span><a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>  @Test<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  public void testMetricsSourceBaseSourcePassthrough(){<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    /*<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    allows for custom JMX metrics.<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    the two layers of wrapping to the actual BaseSource.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    */<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    String id = "id";<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>    MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    String gaugeName = "gauge";<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    String singleGaugeName = "source.id." + gaugeName;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    String globalGaugeName = "source." + gaugeName;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    long delta = 1;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    String counterName = "counter";<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    String singleCounterName = "source.id." + counterName;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    String globalCounterName = "source." + counterName;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    long count = 2;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    source.decGauge(gaugeName, delta);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    source.getMetricsContext();<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    source.getMetricsDescription();<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    source.getMetricsJmxContext();<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    source.getMetricsName();<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    source.incCounters(counterName, count);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    source.incGauge(gaugeName, delta);<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    source.init();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    source.removeMetric(gaugeName);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    source.setGauge(gaugeName, delta);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    source.updateHistogram(counterName, count);<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    verify(globalRms).getMetricsContext();<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    verify(globalRms).getMetricsJmxContext();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    verify(globalRms).getMetricsName();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    verify(singleRms).incCounters(singleCounterName, count);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    verify(globalRms).incCounters(globalCounterName, count);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    verify(globalRms).init();<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    verify(singleRms).removeMetric(singleGaugeName);<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    verify(globalRms).removeMetric(globalGaugeName);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    verify(globalRms).updateHistogram(globalCounterName, count);<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>  private void doPut(byte[] row) throws IOException {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      doPut(connection, row);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>  private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    try (Table t = connection.getTable(tableName)) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      Put put = new Put(row);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      put.addColumn(famName, row, row);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      t.put(put);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>  private static void doAssert(byte[] row) throws Exception {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      return; // first call<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    List&lt;Cell&gt; cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    Assert.assertEquals(1, cells.size());<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      cells.get(0).getRowLength(), row, 0, row.length));<a name="line.380"></a>
-<span class="sourceLineNo">381</span>  }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span>  public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    static UUID uuid = UUID.randomUUID();<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    static AtomicInteger contructedCount = new AtomicInteger();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    static AtomicInteger startedCount = new AtomicInteger();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    static volatile List&lt;Entry&gt; lastEntries = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>    public ReplicationEndpointForTest() {<a name="line.391"></a>
+<span class="sourceLineNo">299</span>  @Test<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  public void testMetricsSourceBaseSourcePassthrough(){<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    /*<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    allows for custom JMX metrics.<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    the two layers of wrapping to the actual BaseSource.<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    String id = "id";<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>    MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    String gaugeName = "gauge";<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    String singleGaugeName = "source.id." + gaugeName;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    String globalGaugeName = "source." + gaugeName;<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    long delta = 1;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    String counterName = "counter";<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    String singleCounterName = "source.id." + counterName;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    String globalCounterName = "source." + counterName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    long count = 2;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    source.decGauge(gaugeName, delta);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    source.getMetricsContext();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    source.getMetricsDescription();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    source.getMetricsJmxContext();<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    source.getMetricsName();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    source.incCounters(counterName, count);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    source.incGauge(gaugeName, delta);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    source.init();<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    source.removeMetric(gaugeName);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    source.setGauge(gaugeName, delta);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    source.updateHistogram(counterName, count);<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>    verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    verify(globalRms).getMetricsContext();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    verify(globalRms).getMetricsJmxContext();<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    verify(globalRms).getMetricsName();<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    verify(singleRms).incCounters(singleCounterName, count);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    verify(globalRms).incCounters(globalCounterName, count);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    verify(globalRms).init();<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    verify(singleRms).removeMetric(singleGaugeName);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    verify(globalRms).removeMetric(globalGaugeName);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    verify(globalRms).updateHistogram(globalCounterName, count);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>  private void doPut(byte[] row) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      doPut(connection, row);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>  private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    try (Table t = connection.getTable(tableName)) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      Put put = new Put(row);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      put.addColumn(famName, row, row);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      t.put(put);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>  private static void doAssert(byte[] row) throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      return; // first call<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    List&lt;Cell&gt; cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    Assert.assertEquals(1, cells.size());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      cells.get(0).getRowLength(), row, 0, row.length));<a name="line.379"></a>
+<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>  public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    static UUID uuid = UUID.randomUUID();<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    static AtomicInteger contructedCount = new AtomicInteger();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    static AtomicInteger startedCount = new AtomicInteger();<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    static volatile List&lt;Entry&gt; lastEntries = null;<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>    public ReplicationEndpointForTest() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      replicateCount.set(0);<a name="line.391"></a>
 <span class="sourceLineNo">392</span>      contructedCount.incrementAndGet();<a name="line.392"></a>
 <span class="sourceLineNo">393</span>    }<a name="line.393"></a>
 <span class="sourceLineNo">394</span><a name="line.394"></a>
@@ -441,127 +441,131 @@
 <span class="sourceLineNo">433</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.433"></a>
 <span class="sourceLineNo">434</span>    static boolean failedOnce;<a name="line.434"></a>
 <span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      boolean success = super.replicate(replicateContext);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      if (success) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        replicateCount.addAndGet(replicateContext.entries.size());<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      }<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      return success;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>    @Override<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    protected Replicator createReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      // Fail only once, we don't want to slow down the test.<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      if (failedOnce) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>        return new DummyReplicator(entries, ordinal);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      } else {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>        failedOnce = true;<a name="line.451"></a>
-<span class="sourceLineNo">452</span>        return new FailingDummyReplicator(entries, ordinal);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
-<span class="sourceLineNo">455</span><a name="line.455"></a>
-<span class="sourceLineNo">456</span>    protected class DummyReplicator extends Replicator {<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>      private int ordinal;<a name="line.458"></a>
+<span class="sourceLineNo">436</span>    public InterClusterReplicationEndpointForTest() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>      replicateCount.set(0);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>    @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      boolean success = super.replicate(replicateContext);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      if (success) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        replicateCount.addAndGet(replicateContext.entries.size());<a name="line.444"></a>
+<span class="sourceLineNo">445</span>      }<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      return success;<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span>    @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    protected Replicator createReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      // Fail only once, we don't want to slow down the test.<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      if (failedOnce) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        return new DummyReplicator(entries, ordinal);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        failedOnce = true;<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        return new FailingDummyReplicator(entries, ordinal);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      }<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    }<a name="line.458"></a>
 <span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>      public DummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        super(entries, ordinal);<a name="line.461"></a>
-<span class="sourceLineNo">462</span>        this.ordinal = ordinal;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>      @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      public Integer call() throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        return ordinal;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      }<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    }<a name="line.469"></a>
-<span class="sourceLineNo">470</span><a name="line.470"></a>
-<span class="sourceLineNo">471</span>    protected class FailingDummyReplicator extends DummyReplicator {<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span>      public FailingDummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        super(entries, ordinal);<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
+<span class="sourceLineNo">460</span>    protected class DummyReplicator extends Replicator {<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>      private int ordinal;<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>      public DummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        super(entries, ordinal);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        this.ordinal = ordinal;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>      }<a name="line.467"></a>
+<span class="sourceLineNo">468</span><a name="line.468"></a>
+<span class="sourceLineNo">469</span>      @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      public Integer call() throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        return ordinal;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      }<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>    protected class FailingDummyReplicator extends DummyReplicator {<a name="line.475"></a>
 <span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>      @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      public Integer call() throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>        throw new IOException("Sample Exception: Failed to replicate.");<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      }<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>  public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    static int COUNT = 10;<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    @Override<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      try {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        // check row<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        doAssert(row);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      } catch (Exception e) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>        ex.set(e);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>      super.replicate(replicateContext);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>      replicated.set(replicateCount.get() &gt; COUNT); // first 10 times, we return false<a name="line.500"></a>
-<span class="sourceLineNo">501</span>      return replicated.get();<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    }<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span>  // return a WALEntry filter which only accepts "row", but not other rows<a name="line.505"></a>
-<span class="sourceLineNo">506</span>  public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.507"></a>
+<span class="sourceLineNo">477</span>      public FailingDummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        super(entries, ordinal);<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>      @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      public Integer call() throws IOException {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        throw new IOException("Sample Exception: Failed to replicate.");<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      }<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span>  public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    static int COUNT = 10;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>      try {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        // check row<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        doAssert(row);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>      } catch (Exception e) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        ex.set(e);<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      }<a name="line.499"></a>
+<span class="sourceLineNo">500</span><a name="line.500"></a>
+<span class="sourceLineNo">501</span>      super.replicate(replicateContext);<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>      replicated.set(replicateCount.get() &gt; COUNT); // first 10 times, we return false<a name="line.504"></a>
+<span class="sourceLineNo">505</span>      return replicated.get();<a name="line.505"></a>
+<span class="sourceLineNo">506</span>    }<a name="line.506"></a>
+<span class="sourceLineNo">507</span>  }<a name="line.507"></a>
 <span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span>    @Override<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      try {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        super.replicate(replicateContext);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>        doAssert(row);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      } catch (Exception e) {<a name="line.514"></a>
-<span class="sourceLineNo">515</span>        ex.set(e);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      }<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      return true;<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>    @Override<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    public WALEntryFilter getWALEntryfilter() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span>        public Entry filter(Entry entry) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>          ArrayList&lt;Cell&gt; cells = entry.getEdit().getCells();<a name="line.525"></a>
-<span class="sourceLineNo">526</span>          int size = cells.size();<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          for (int i = size-1; i &gt;= 0; i--) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>            Cell cell = cells.get(i);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>            if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.529"></a>
-<span class="sourceLineNo">530</span>              row, 0, row.length)) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span>              cells.remove(i);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>            }<a name="line.532"></a>
-<span class="sourceLineNo">533</span>          }<a name="line.533"></a>
-<span class="sourceLineNo">534</span>          return entry;<a name="line.534"></a>
-<span class="sourceLineNo">535</span>        }<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      });<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    }<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span>  public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    private static boolean passedEntry = false;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    public Entry filter(Entry entry) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>      passedEntry = true;<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      return entry;<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>    public static boolean hasPassedAnEntry(){<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      return passedEntry;<a name="line.549"></a>
+<span class="sourceLineNo">509</span>  // return a WALEntry filter which only accepts "row", but not other rows<a name="line.509"></a>
+<span class="sourceLineNo">510</span>  public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span>    @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      try {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        super.replicate(replicateContext);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        doAssert(row);<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      } catch (Exception e) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        ex.set(e);<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      }<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      return true;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>    }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span>    @Override<a name="line.524"></a>
+<span class="sourceLineNo">525</span>    public WALEntryFilter getWALEntryfilter() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public Entry filter(Entry entry) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>          ArrayList&lt;Cell&gt; cells = entry.getEdit().getCells();<a name="line.529"></a>
+<span class="sourceLineNo">530</span>          int size = cells.size();<a name="line.530"></a>
+<span class="sourceLineNo">531</span>          for (int i = size-1; i &gt;= 0; i--) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>            Cell cell = cells.get(i);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>            if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.533"></a>
+<span class="sourceLineNo">534</span>              row, 0, row.length)) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>              cells.remove(i);<a name="line.535"></a>
+<span class="sourceLineNo">536</span>            }<a name="line.536"></a>
+<span class="sourceLineNo">537</span>          }<a name="line.537"></a>
+<span class="sourceLineNo">538</span>          return entry;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        }<a name="line.539"></a>
+<span class="sourceLineNo">540</span>      });<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>  }<a name="line.542"></a>
+<span class="sourceLineNo">543</span><a name="line.543"></a>
+<span class="sourceLineNo">544</span>  public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.544"></a>
+<span class="sourceLineNo">545</span>    private static boolean passedEntry = false;<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    public Entry filter(Entry entry) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>      passedEntry = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      return entry;<a name="line.549"></a>
 <span class="sourceLineNo">550</span>    }<a name="line.550"></a>
-<span class="sourceLineNo">551</span>  }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span>  public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>    public static boolean hasPassedAnEntry(){<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      return passedEntry;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    }<a name="line.554"></a>
 <span class="sourceLineNo">555</span>  }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>}<a name="line.556"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span>  public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span>  }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>}<a name="line.560"></a>
 
 
 


[23/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html
index b2a29be..204dbcc 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html
@@ -121,7 +121,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>protected class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.456">TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator</a>
+<pre>protected class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.460">TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -210,7 +210,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ordinal</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html#line.458">ordinal</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html#line.462">ordinal</a></pre>
 </li>
 </ul>
 </li>
@@ -227,7 +227,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>DummyReplicator</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html#line.460">DummyReplicator</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.wal.WAL.Entry&gt;&nbsp;entries,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html#line.464">DummyReplicator</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.wal.WAL.Entry&gt;&nbsp;entries,
                        int&nbsp;ordinal)</pre>
 </li>
 </ul>
@@ -245,7 +245,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>call</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html#line.466">call</a>()
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html#line.470">call</a>()
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html
index e1c5b5e..af342f6 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>protected class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.471">TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator</a>
+<pre>protected class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.475">TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator</a></pre>
 </li>
 </ul>
@@ -192,7 +192,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FailingDummyReplicator</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html#line.473">FailingDummyReplicator</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.wal.WAL.Entry&gt;&nbsp;entries,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html#line.477">FailingDummyReplicator</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.wal.WAL.Entry&gt;&nbsp;entries,
                               int&nbsp;ordinal)</pre>
 </li>
 </ul>
@@ -210,7 +210,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>call</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html#line.478">call</a>()
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html#line.482">call</a>()
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html
index 5d91f21..0f850d3 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html
@@ -353,7 +353,7 @@ extends org.apache.hadoop.hbase.replication.regionserver.HBaseInterClusterReplic
 <ul class="blockListLast">
 <li class="blockList">
 <h4>InterClusterReplicationEndpointForTest</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.430">InterClusterReplicationEndpointForTest</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.436">InterClusterReplicationEndpointForTest</a>()</pre>
 </li>
 </ul>
 </li>
@@ -370,7 +370,7 @@ extends org.apache.hadoop.hbase.replication.regionserver.HBaseInterClusterReplic
 <ul class="blockList">
 <li class="blockList">
 <h4>replicate</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.437">replicate</a>(org.apache.hadoop.hbase.replication.ReplicationEndpoint.ReplicateContext&nbsp;replicateContext)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.441">replicate</a>(org.apache.hadoop.hbase.replication.ReplicationEndpoint.ReplicateContext&nbsp;replicateContext)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>replicate</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.replication.ReplicationEndpoint</code></dd>
@@ -385,7 +385,7 @@ extends org.apache.hadoop.hbase.replication.regionserver.HBaseInterClusterReplic
 <ul class="blockListLast">
 <li class="blockList">
 <h4>createReplicator</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.replication.regionserver.HBaseInterClusterReplicationEndpoint.Replicator&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.446">createReplicator</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.wal.WAL.Entry&gt;&nbsp;entries,
+<pre>protected&nbsp;org.apache.hadoop.hbase.replication.regionserver.HBaseInterClusterReplicationEndpoint.Replicator&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html#line.450">createReplicator</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.wal.WAL.Entry&gt;&nbsp;entries,
                                                                                                                             int&nbsp;ordinal)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html
index 4a28ccd..2a83467 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html
@@ -131,7 +131,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.383">TestReplicationEndpoint.ReplicationEndpointForTest</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.382">TestReplicationEndpoint.ReplicationEndpointForTest</a>
 extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
 </li>
 </ul>
@@ -309,7 +309,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>uuid</h4>
-<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.384">uuid</a></pre>
+<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.383">uuid</a></pre>
 </li>
 </ul>
 <a name="contructedCount">
@@ -318,7 +318,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>contructedCount</h4>
-<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.385">contructedCount</a></pre>
+<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.384">contructedCount</a></pre>
 </li>
 </ul>
 <a name="startedCount">
@@ -327,7 +327,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>startedCount</h4>
-<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.386">startedCount</a></pre>
+<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.385">startedCount</a></pre>
 </li>
 </ul>
 <a name="stoppedCount">
@@ -336,7 +336,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>stoppedCount</h4>
-<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.387">stoppedCount</a></pre>
+<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.386">stoppedCount</a></pre>
 </li>
 </ul>
 <a name="replicateCount">
@@ -345,7 +345,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>replicateCount</h4>
-<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.388">replicateCount</a></pre>
+<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.387">replicateCount</a></pre>
 </li>
 </ul>
 <a name="lastEntries">
@@ -354,7 +354,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>lastEntries</h4>
-<pre>static volatile&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.wal.WAL.Entry&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.389">lastEntries</a></pre>
+<pre>static volatile&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.wal.WAL.Entry&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.388">lastEntries</a></pre>
 </li>
 </ul>
 </li>
@@ -371,7 +371,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ReplicationEndpointForTest</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.391">ReplicationEndpointForTest</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html#line.390">ReplicationEndpointForTest</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html
index d8825c6..ecd7961 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html
@@ -132,7 +132,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.484">TestReplicationEndpoint.ReplicationEndpointReturningFalse</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.488">TestReplicationEndpoint.ReplicationEndpointReturningFalse</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationEndpoint.ReplicationEndpointForTest</a></pre>
 </li>
 </ul>
@@ -292,7 +292,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>COUNT</h4>
-<pre>static&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.485">COUNT</a></pre>
+<pre>static&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.489">COUNT</a></pre>
 </li>
 </ul>
 <a name="ex">
@@ -301,7 +301,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>ex</h4>
-<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicReference</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.486">ex</a></pre>
+<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicReference</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.490">ex</a></pre>
 </li>
 </ul>
 <a name="replicated">
@@ -310,7 +310,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>replicated</h4>
-<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.487">replicated</a></pre>
+<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.491">replicated</a></pre>
 </li>
 </ul>
 </li>
@@ -327,7 +327,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ReplicationEndpointReturningFalse</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.484">ReplicationEndpointReturningFalse</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.488">ReplicationEndpointReturningFalse</a>()</pre>
 </li>
 </ul>
 </li>
@@ -344,7 +344,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>replicate</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.489">replicate</a>(org.apache.hadoop.hbase.replication.ReplicationEndpoint.ReplicateContext&nbsp;replicateContext)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html#line.493">replicate</a>(org.apache.hadoop.hbase.replication.ReplicationEndpoint.ReplicateContext&nbsp;replicateContext)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>replicate</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.replication.ReplicationEndpoint</code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html
index ecd9601..f8b3f92 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html
@@ -132,7 +132,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.506">TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.510">TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationEndpoint.ReplicationEndpointForTest</a></pre>
 </li>
 </ul>
@@ -288,7 +288,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ex</h4>
-<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicReference</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html#line.507">ex</a></pre>
+<pre>static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicReference</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html#line.511">ex</a></pre>
 </li>
 </ul>
 </li>
@@ -305,7 +305,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ReplicationEndpointWithWALEntryFilter</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html#line.506">ReplicationEndpointWithWALEntryFilter</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html#line.510">ReplicationEndpointWithWALEntryFilter</a>()</pre>
 </li>
 </ul>
 </li>
@@ -322,7 +322,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>replicate</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html#line.510">replicate</a>(org.apache.hadoop.hbase.replication.ReplicationEndpoint.ReplicateContext&nbsp;replicateContext)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html#line.514">replicate</a>(org.apache.hadoop.hbase.replication.ReplicationEndpoint.ReplicateContext&nbsp;replicateContext)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>replicate</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.replication.ReplicationEndpoint</code></dd>
@@ -337,7 +337,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getWALEntryfilter</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.replication.WALEntryFilter&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html#line.521">getWALEntryfilter</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.replication.WALEntryFilter&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html#line.525">getWALEntryfilter</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getWALEntryfilter</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.replication.ReplicationEndpoint</code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html
index e84b67d..3626d5e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html
@@ -196,7 +196,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
 .html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
 ">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -288,7 +288,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplicat
 ion</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -383,7 +383,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDownAfterClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.86">tearDownAfterClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.85">tearDownAfterClass</a>()
                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -397,7 +397,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>setup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.93">setup</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.92">setup</a>()
            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -411,7 +411,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>testCustomReplicationEndpoint</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.130">testCustomReplicationEndpoint</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.129">testCustomReplicationEndpoint</a>()
                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -425,7 +425,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>testReplicationEndpointReturnsFalseOnReplicate</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.169">testReplicationEndpointReturnsFalseOnReplicate</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.168">testReplicationEndpointReturnsFalseOnReplicate</a>()
                                                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -439,7 +439,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>testInterClusterReplication</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.205">testInterClusterReplication</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.204">testInterClusterReplication</a>()
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -453,7 +453,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>testWALEntryFilterFromReplicationEndpoint</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.251">testWALEntryFilterFromReplicationEndpoint</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.250">testWALEntryFilterFromReplicationEndpoint</a>()
                                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -467,7 +467,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>testWALEntryFilterAddValidation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.280">testWALEntryFilterAddValidation</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.279">testWALEntryFilterAddValidation</a>()
                                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -481,7 +481,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>testWALEntryFilterUpdateValidation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.290">testWALEntryFilterUpdateValidation</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.289">testWALEntryFilterUpdateValidation</a>()
                                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -495,7 +495,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>testMetricsSourceBaseSourcePassthrough</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.301">testMetricsSourceBaseSourcePassthrough</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.300">testMetricsSourceBaseSourcePassthrough</a>()</pre>
 </li>
 </ul>
 <a name="doPut-byte:A-">
@@ -504,7 +504,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>doPut</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.358">doPut</a>(byte[]&nbsp;row)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.357">doPut</a>(byte[]&nbsp;row)
             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -518,7 +518,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>doPut</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.364">doPut</a>(org.apache.hadoop.hbase.client.Connection&nbsp;connection,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.363">doPut</a>(org.apache.hadoop.hbase.client.Connection&nbsp;connection,
                    byte[]&nbsp;row)
             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -533,7 +533,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>doAssert</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.372">doAssert</a>(byte[]&nbsp;row)
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.371">doAssert</a>(byte[]&nbsp;row)
                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html
index 0cbd130..2eda985 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html
@@ -123,7 +123,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html#line.35">TestReplicationKillMasterRS</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html#line.32">TestReplicationKillMasterRS</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></pre>
 <div class="block">Runs the TestReplicationKillRS test and selects the RS to kill in the master cluster
  Do not add other tests in this class.</div>
@@ -155,7 +155,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
 .html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
 ">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -205,7 +205,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
 aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterC
 lass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -234,7 +234,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html#line.38">CLASS_RULE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html#line.35">CLASS_RULE</a></pre>
 </li>
 </ul>
 </li>
@@ -251,7 +251,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestReplicationKillMasterRS</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html#line.35">TestReplicationKillMasterRS</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html#line.32">TestReplicationKillMasterRS</a>()</pre>
 </li>
 </ul>
 </li>
@@ -268,7 +268,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>killOneMasterRS</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html#line.42">killOneMasterRS</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html#line.39">killOneMasterRS</a>()
                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html
index e27afae..22197d1 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" target="_top">Frames</a></li>
@@ -160,7 +160,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
 .html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
 ">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -217,7 +217,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>
 , <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -317,7 +317,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" target="_top">Frames</a></li>


[18/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html
index 19c72a2..f6a8245 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html
@@ -104,213 +104,219 @@
 <span class="sourceLineNo">096</span>    admin1.modifyTable(tableName, table);<a name="line.96"></a>
 <span class="sourceLineNo">097</span>    admin1.enableTable(tableName);<a name="line.97"></a>
 <span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>    admin1.disableTableReplication(tableName);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    table = admin1.getTableDescriptor(tableName);<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      assertEquals(HConstants.REPLICATION_SCOPE_LOCAL, fam.getScope());<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>  @Test<a name="line.107"></a>
-<span class="sourceLineNo">108</span>  public void testEnableReplicationWhenSlaveClusterDoesntHaveTable() throws Exception {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    admin1.disableTableReplication(tableName);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    admin2.disableTable(tableName);<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    admin2.deleteTable(tableName);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    assertFalse(admin2.tableExists(tableName));<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    admin1.enableTableReplication(tableName);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    assertTrue(admin2.tableExists(tableName));<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  }<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span>  @Test<a name="line.117"></a>
-<span class="sourceLineNo">118</span>  public void testEnableReplicationWhenReplicationNotEnabled() throws Exception {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    HTableDescriptor table = new HTableDescriptor(admin1.getTableDescriptor(tableName));<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>      fam.setScope(HConstants.REPLICATION_SCOPE_LOCAL);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    admin1.disableTable(tableName);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    admin1.modifyTable(tableName, table);<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    admin1.enableTable(tableName);<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>    admin2.disableTable(tableName);<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    admin2.modifyTable(tableName, table);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    admin2.enableTable(tableName);<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>    admin1.enableTableReplication(tableName);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    table = admin1.getTableDescriptor(tableName);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    }<a name="line.135"></a>
-<span class="sourceLineNo">136</span>  }<a name="line.136"></a>
-<span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span>  @Test<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  public void testEnableReplicationWhenTableDescriptorIsNotSameInClusters() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    HTableDescriptor table = new HTableDescriptor(admin2.getTableDescriptor(tableName));<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    HColumnDescriptor f = new HColumnDescriptor("newFamily");<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    table.addFamily(f);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    admin2.disableTable(tableName);<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    admin2.modifyTable(tableName, table);<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    admin2.enableTable(tableName);<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>    try {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      admin1.enableTableReplication(tableName);<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      fail("Exception should be thrown if table descriptors in the clusters are not same.");<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    } catch (RuntimeException ignored) {<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span>    }<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    admin1.disableTable(tableName);<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    admin1.modifyTable(tableName, table);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    admin1.enableTable(tableName);<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    admin1.enableTableReplication(tableName);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    table = admin1.getTableDescriptor(tableName);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    }<a name="line.160"></a>
-<span class="sourceLineNo">161</span>  }<a name="line.161"></a>
+<span class="sourceLineNo">099</span>    admin1.disableTableReplication(tableName);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    table = admin1.getTableDescriptor(tableName);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>      assertEquals(HConstants.REPLICATION_SCOPE_LOCAL, fam.getScope());<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    }<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span>    admin1.deleteColumnFamily(table.getTableName(), f.getName());<a name="line.105"></a>
+<span class="sourceLineNo">106</span>  }<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>  @Test<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  public void testEnableReplicationWhenSlaveClusterDoesntHaveTable() throws Exception {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    admin1.disableTableReplication(tableName);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    admin2.disableTable(tableName);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    admin2.deleteTable(tableName);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    assertFalse(admin2.tableExists(tableName));<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    admin1.enableTableReplication(tableName);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    assertTrue(admin2.tableExists(tableName));<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span>  @Test<a name="line.118"></a>
+<span class="sourceLineNo">119</span>  public void testEnableReplicationWhenReplicationNotEnabled() throws Exception {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    HTableDescriptor table = new HTableDescriptor(admin1.getTableDescriptor(tableName));<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      fam.setScope(HConstants.REPLICATION_SCOPE_LOCAL);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    admin1.disableTable(tableName);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    admin1.modifyTable(tableName, table);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    admin1.enableTable(tableName);<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>    admin2.disableTable(tableName);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    admin2.modifyTable(tableName, table);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    admin2.enableTable(tableName);<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>    admin1.enableTableReplication(tableName);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    table = admin1.getTableDescriptor(tableName);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    }<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>  @Test<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  public void testEnableReplicationWhenTableDescriptorIsNotSameInClusters() throws Exception {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    HTableDescriptor table = new HTableDescriptor(admin2.getTableDescriptor(tableName));<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    HColumnDescriptor f = new HColumnDescriptor("newFamily");<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    table.addFamily(f);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    admin2.disableTable(tableName);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    admin2.modifyTable(tableName, table);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    admin2.enableTable(tableName);<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>    try {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      admin1.enableTableReplication(tableName);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      fail("Exception should be thrown if table descriptors in the clusters are not same.");<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    } catch (RuntimeException ignored) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span><a name="line.152"></a>
+<span class="sourceLineNo">153</span>    }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    admin1.disableTable(tableName);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    admin1.modifyTable(tableName, table);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    admin1.enableTable(tableName);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    admin1.enableTableReplication(tableName);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    table = admin1.getTableDescriptor(tableName);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    }<a name="line.161"></a>
 <span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>  @Test<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  public void testDisableAndEnableReplication() throws Exception {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    admin1.disableTableReplication(tableName);<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    HTableDescriptor table = admin1.getTableDescriptor(tableName);<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      assertEquals(HConstants.REPLICATION_SCOPE_LOCAL, fam.getScope());<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    admin1.enableTableReplication(tableName);<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    table = admin1.getTableDescriptor(tableName);<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  }<a name="line.175"></a>
-<span class="sourceLineNo">176</span><a name="line.176"></a>
-<span class="sourceLineNo">177</span>  @Test(expected = TableNotFoundException.class)<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  public void testDisableReplicationForNonExistingTable() throws Exception {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    admin1.disableTableReplication(TableName.valueOf(name.getMethodName()));<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  }<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
-<span class="sourceLineNo">182</span>  @Test(expected = TableNotFoundException.class)<a name="line.182"></a>
-<span class="sourceLineNo">183</span>  public void testEnableReplicationForNonExistingTable() throws Exception {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    admin1.enableTableReplication(TableName.valueOf(name.getMethodName()));<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  }<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>  @Test(expected = IllegalArgumentException.class)<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  public void testDisableReplicationWhenTableNameAsNull() throws Exception {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    admin1.disableTableReplication(null);<a name="line.189"></a>
-<span class="sourceLineNo">190</span>  }<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>  @Test(expected = IllegalArgumentException.class)<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  public void testEnableReplicationWhenTableNameAsNull() throws Exception {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    admin1.enableTableReplication(null);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  /*<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   * Test enable table replication should create table only in user explicit specified table-cfs.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   * HBASE-14717<a name="line.199"></a>
-<span class="sourceLineNo">200</span>   */<a name="line.200"></a>
-<span class="sourceLineNo">201</span>  @Test<a name="line.201"></a>
-<span class="sourceLineNo">202</span>  public void testEnableReplicationForExplicitSetTableCfs() throws Exception {<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    final TableName tableName = TableName.valueOf(name.getMethodName());<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    String peerId = "2";<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    if (admin2.isTableAvailable(TestReplicationBase.tableName)) {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      admin2.disableTable(TestReplicationBase.tableName);<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      admin2.deleteTable(TestReplicationBase.tableName);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    assertFalse("Table should not exists in the peer cluster",<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>    // update peer config<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    ReplicationPeerConfig rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    rpc.setReplicateAllUserTables(false);<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    admin1.updateReplicationPeerConfig(peerId, rpc);<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span>    Map&lt;TableName, ? extends Collection&lt;String&gt;&gt; tableCfs = new HashMap&lt;&gt;();<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    tableCfs.put(tableName, null);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    try {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      adminExt.setPeerTableCFs(peerId, tableCfs);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      admin1.enableTableReplication(TestReplicationBase.tableName);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      assertFalse("Table should not be created if user has set table cfs explicitly for the "<a name="line.222"></a>
-<span class="sourceLineNo">223</span>          + "peer and this is not part of that collection",<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>      tableCfs.put(TestReplicationBase.tableName, null);<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      adminExt.setPeerTableCFs(peerId, tableCfs);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      admin1.enableTableReplication(TestReplicationBase.tableName);<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      assertTrue(<a name="line.229"></a>
-<span class="sourceLineNo">230</span>        "Table should be created if user has explicitly added table into table cfs collection",<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    } finally {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      adminExt.removePeerTableCFs(peerId, adminExt.getPeerTableCFs(peerId));<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      admin1.disableTableReplication(TestReplicationBase.tableName);<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span>      rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      rpc.setReplicateAllUserTables(true);<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      admin1.updateReplicationPeerConfig(peerId, rpc);<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    }<a name="line.239"></a>
-<span class="sourceLineNo">240</span>  }<a name="line.240"></a>
-<span class="sourceLineNo">241</span><a name="line.241"></a>
-<span class="sourceLineNo">242</span>  @Test<a name="line.242"></a>
-<span class="sourceLineNo">243</span>  public void testReplicationPeerConfigUpdateCallback() throws Exception {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    String peerId = "1";<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    rpc.setClusterKey(utility2.getClusterKey());<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    rpc.setReplicationEndpointImpl(TestUpdatableReplicationEndpoint.class.getName());<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    rpc.getConfiguration().put("key1", "value1");<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>    admin1.addReplicationPeer(peerId, rpc);<a name="line.250"></a>
-<span class="sourceLineNo">251</span><a name="line.251"></a>
-<span class="sourceLineNo">252</span>    rpc.getConfiguration().put("key1", "value2");<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    admin.updatePeerConfig(peerId, rpc);<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    if (!TestUpdatableReplicationEndpoint.hasCalledBack()) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      synchronized(TestUpdatableReplicationEndpoint.class) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        TestUpdatableReplicationEndpoint.class.wait(2000L);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      }<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    }<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>    assertEquals(true, TestUpdatableReplicationEndpoint.hasCalledBack());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  public static class TestUpdatableReplicationEndpoint extends BaseReplicationEndpoint {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    private static boolean calledBack = false;<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    public static boolean hasCalledBack(){<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      return calledBack;<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    }<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    @Override<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    public synchronized void peerConfigUpdated(ReplicationPeerConfig rpc){<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      calledBack = true;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      notifyAll();<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    }<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">163</span>    admin1.deleteColumnFamily(tableName, f.getName());<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    admin2.deleteColumnFamily(tableName, f.getName());<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>  @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  public void testDisableAndEnableReplication() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    admin1.disableTableReplication(tableName);<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    HTableDescriptor table = admin1.getTableDescriptor(tableName);<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      assertEquals(HConstants.REPLICATION_SCOPE_LOCAL, fam.getScope());<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    admin1.enableTableReplication(tableName);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    table = admin1.getTableDescriptor(tableName);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>      assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>  @Test(expected = TableNotFoundException.class)<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  public void testDisableReplicationForNonExistingTable() throws Exception {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    admin1.disableTableReplication(TableName.valueOf(name.getMethodName()));<a name="line.183"></a>
+<span class="sourceLineNo">184</span>  }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>  @Test(expected = TableNotFoundException.class)<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  public void testEnableReplicationForNonExistingTable() throws Exception {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    admin1.enableTableReplication(TableName.valueOf(name.getMethodName()));<a name="line.188"></a>
+<span class="sourceLineNo">189</span>  }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>  @Test(expected = IllegalArgumentException.class)<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  public void testDisableReplicationWhenTableNameAsNull() throws Exception {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    admin1.disableTableReplication(null);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>  @Test(expected = IllegalArgumentException.class)<a name="line.196"></a>
+<span class="sourceLineNo">197</span>  public void testEnableReplicationWhenTableNameAsNull() throws Exception {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    admin1.enableTableReplication(null);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>  }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>  /*<a name="line.201"></a>
+<span class="sourceLineNo">202</span>   * Test enable table replication should create table only in user explicit specified table-cfs.<a name="line.202"></a>
+<span class="sourceLineNo">203</span>   * HBASE-14717<a name="line.203"></a>
+<span class="sourceLineNo">204</span>   */<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  @Test<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  public void testEnableReplicationForExplicitSetTableCfs() throws Exception {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    final TableName tableName = TableName.valueOf(name.getMethodName());<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    String peerId = "2";<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    if (admin2.isTableAvailable(TestReplicationBase.tableName)) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      admin2.disableTable(TestReplicationBase.tableName);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      admin2.deleteTable(TestReplicationBase.tableName);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    assertFalse("Table should not exists in the peer cluster",<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>    // update peer config<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    ReplicationPeerConfig rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    rpc.setReplicateAllUserTables(false);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    admin1.updateReplicationPeerConfig(peerId, rpc);<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>    Map&lt;TableName, ? extends Collection&lt;String&gt;&gt; tableCfs = new HashMap&lt;&gt;();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    tableCfs.put(tableName, null);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    try {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      adminExt.setPeerTableCFs(peerId, tableCfs);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      admin1.enableTableReplication(TestReplicationBase.tableName);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      assertFalse("Table should not be created if user has set table cfs explicitly for the "<a name="line.226"></a>
+<span class="sourceLineNo">227</span>          + "peer and this is not part of that collection",<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>      tableCfs.put(TestReplicationBase.tableName, null);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      adminExt.setPeerTableCFs(peerId, tableCfs);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      admin1.enableTableReplication(TestReplicationBase.tableName);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      assertTrue(<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        "Table should be created if user has explicitly added table into table cfs collection",<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    } finally {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      adminExt.removePeerTableCFs(peerId, adminExt.getPeerTableCFs(peerId));<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      admin1.disableTableReplication(TestReplicationBase.tableName);<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>      rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      rpc.setReplicateAllUserTables(true);<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      admin1.updateReplicationPeerConfig(peerId, rpc);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    }<a name="line.243"></a>
+<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
+<span class="sourceLineNo">245</span><a name="line.245"></a>
+<span class="sourceLineNo">246</span>  @Test<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  public void testReplicationPeerConfigUpdateCallback() throws Exception {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    String peerId = "1";<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    rpc.setClusterKey(utility2.getClusterKey());<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    rpc.setReplicationEndpointImpl(TestUpdatableReplicationEndpoint.class.getName());<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    rpc.getConfiguration().put("key1", "value1");<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>    admin1.addReplicationPeer(peerId, rpc);<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>    rpc.getConfiguration().put("key1", "value2");<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    admin.updatePeerConfig(peerId, rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    if (!TestUpdatableReplicationEndpoint.hasCalledBack()) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      synchronized (TestUpdatableReplicationEndpoint.class) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        TestUpdatableReplicationEndpoint.class.wait(2000L);<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      }<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>    assertEquals(true, TestUpdatableReplicationEndpoint.hasCalledBack());<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>    admin.removePeer(peerId);<a name="line.266"></a>
+<span class="sourceLineNo">267</span>  }<a name="line.267"></a>
+<span class="sourceLineNo">268</span><a name="line.268"></a>
+<span class="sourceLineNo">269</span>  public static class TestUpdatableReplicationEndpoint extends BaseReplicationEndpoint {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    private static boolean calledBack = false;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    public static boolean hasCalledBack(){<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      return calledBack;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    }<a name="line.273"></a>
 <span class="sourceLineNo">274</span>    @Override<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    public void start() {<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      startAsync();<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span>    @Override<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    public void stop() {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      stopAsync();<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    }<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span>    @Override<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    protected void doStart() {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      notifyStarted();<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    }<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span>    @Override<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    protected void doStop() {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>      notifyStopped();<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    }<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">275</span>    public synchronized void peerConfigUpdated(ReplicationPeerConfig rpc){<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      calledBack = true;<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      notifyAll();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    }<a name="line.278"></a>
+<span class="sourceLineNo">279</span><a name="line.279"></a>
+<span class="sourceLineNo">280</span>    @Override<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    public void start() {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      startAsync();<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>    @Override<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    public void stop() {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      stopAsync();<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    }<a name="line.288"></a>
+<span class="sourceLineNo">289</span><a name="line.289"></a>
+<span class="sourceLineNo">290</span>    @Override<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    protected void doStart() {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>      notifyStarted();<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    }<a name="line.293"></a>
 <span class="sourceLineNo">294</span><a name="line.294"></a>
 <span class="sourceLineNo">295</span>    @Override<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    public UUID getPeerUUID() {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      return UUID.randomUUID();<a name="line.297"></a>
+<span class="sourceLineNo">296</span>    protected void doStop() {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>      notifyStopped();<a name="line.297"></a>
 <span class="sourceLineNo">298</span>    }<a name="line.298"></a>
 <span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>    @Override<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      return false;<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    }<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  }<a name="line.304"></a>
-<span class="sourceLineNo">305</span>}<a name="line.305"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>    @Override<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    public UUID getPeerUUID() {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      return UUID.randomUUID();<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    }<a name="line.304"></a>
+<span class="sourceLineNo">305</span><a name="line.305"></a>
+<span class="sourceLineNo">306</span>    @Override<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      return false;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    }<a name="line.309"></a>
+<span class="sourceLineNo">310</span>  }<a name="line.310"></a>
+<span class="sourceLineNo">311</span>}<a name="line.311"></a>
 
 
 


[20/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillRS.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillRS.html b/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillRS.html
index 08e5360..c254da7 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillRS.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillRS.html
@@ -122,11 +122,19 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSWithSeparateOldWALs</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRS</a></span></code>
 <div class="block">Runs the TestReplicationKillRS test and selects the RS to kill in the slave cluster
  Do not add other tests in this class.</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRSWithSeparateOldWALs</a></span></code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillSlaveRSWithSeparateOldWALs.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillSlaveRSWithSeparateOldWALs.html b/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillSlaveRSWithSeparateOldWALs.html
new file mode 100644
index 0000000..9a4fd82
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillSlaveRSWithSeparateOldWALs.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.replication.TestReplicationKillSlaveRSWithSeparateOldWALs (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.replication.TestReplicationKillSlaveRSWithSeparateOldWALs (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/replication/class-use/TestReplicationKillSlaveRSWithSeparateOldWALs.html" target="_top">Frames</a></li>
+<li><a href="TestReplicationKillSlaveRSWithSeparateOldWALs.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.replication.TestReplicationKillSlaveRSWithSeparateOldWALs" class="title">Uses of Class<br>org.apache.hadoop.hbase.replication.TestReplicationKillSlaveRSWithSeparateOldWALs</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.replication.TestReplicationKillSlaveRSWithSeparateOldWALs</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/replication/class-use/TestReplicationKillSlaveRSWithSeparateOldWALs.html" target="_top">Frames</a></li>
+<li><a href="TestReplicationKillSlaveRSWithSeparateOldWALs.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleAsyncWAL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleAsyncWAL.html b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleAsyncWAL.html
index da9a73a..13a7e7c 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleAsyncWAL.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleAsyncWAL.html
@@ -164,7 +164,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
 S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../o
 rg/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
 S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hado
 op/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -214,7 +214,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-i
 nt-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleWAL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleWAL.html b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleWAL.html
index 65e1dcc..01a2980 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleWAL.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationEndpointWithMultipleWAL.html
@@ -164,7 +164,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
 S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../o
 rg/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
 S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hado
 op/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -214,7 +214,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-i
 nt-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL.html b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL.html
index 60abd4c..2b8827b 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL.html
@@ -159,7 +159,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
 S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../o
 rg/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
 S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hado
 op/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -216,7 +216,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDown
 Base--">tearDownBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleWAL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleWAL.html b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleWAL.html
index 24b10fc..864fbe3 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleWAL.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleWAL.html
@@ -159,7 +159,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
 S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../o
 rg/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
 S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hado
 op/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -216,7 +216,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDown
 Base--">tearDownBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleAsyncWAL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleAsyncWAL.html b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleAsyncWAL.html
index e47ce7d..70d118d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleAsyncWAL.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleAsyncWAL.html
@@ -156,7 +156,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_
 ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apa
 che/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_
 ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hba
 se/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -199,14 +199,14 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationSyncUpTool</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setUp--">setUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setupReplication--">setupReplication</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#syncUp-org.apache.hadoop.hbase.HBaseTestingUtility-">syncUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#testSyncUpTool--">testSyncUpTool</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setUp--">setUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setupReplication--">setupReplication</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#syncUp-org.apache.hadoop.hbase.HBaseTestingUtility-">syncUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#testSyncUpTool--">testSyncUpTool</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForR
 eplication-int-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleWAL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleWAL.html b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleWAL.html
index 0f33e8c..0a6ad41 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleWAL.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/multiwal/TestReplicationSyncUpToolWithMultipleWAL.html
@@ -156,7 +156,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_
 ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apa
 che/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_
 ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hba
 se/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -199,14 +199,14 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationSyncUpTool</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setUp--">setUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setupReplication--">setupReplication</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#syncUp-org.apache.hadoop.hbase.HBaseTestingUtility-">syncUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#testSyncUpTool--">testSyncUpTool</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setUp--">setUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setupReplication--">setupReplication</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#syncUp-org.apache.hadoop.hbase.HBaseTestingUtility-">syncUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#testSyncUpTool--">testSyncUpTool</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForR
 eplication-int-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/package-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/package-frame.html b/testdevapidocs/org/apache/hadoop/hbase/replication/package-frame.html
index 08b5e4f..58971c6 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/package-frame.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/package-frame.html
@@ -37,8 +37,10 @@
 <li><a href="TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter</a></li>
 <li><a href="TestReplicationKillMasterRS.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillMasterRS</a></li>
 <li><a href="TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillMasterRSCompressed</a></li>
+<li><a href="TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillMasterRSWithSeparateOldWALs</a></li>
 <li><a href="TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillRS</a></li>
 <li><a href="TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillSlaveRS</a></li>
+<li><a href="TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillSlaveRSWithSeparateOldWALs</a></li>
 <li><a href="TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationPeerConfig</a></li>
 <li><a href="TestReplicationProcedureRetry.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationProcedureRetry</a></li>
 <li><a href="TestReplicationProcedureRetry.MockHMaster.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationProcedureRetry.MockHMaster</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/package-summary.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/package-summary.html b/testdevapidocs/org/apache/hadoop/hbase/replication/package-summary.html
index 162abbe..26fa8a8 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/package-summary.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/package-summary.html
@@ -201,16 +201,24 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSWithSeparateOldWALs</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRS</a></td>
 <td class="colLast">
 <div class="block">Runs the TestReplicationKillRS test and selects the RS to kill in the slave cluster
  Do not add other tests in this class.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRSWithSeparateOldWALs</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationPeerConfig</a></td>
 <td class="colLast">&nbsp;</td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/replication/package-tree.html
index efc7c02..01a466b 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/package-tree.html
@@ -147,7 +147,9 @@
 <li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillMasterRSCompressed</span></a></li>
 </ul>
 </li>
+<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillMasterRSWithSeparateOldWALs</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillSlaveRS</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillSlaveRSWithSeparateOldWALs</span></a></li>
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationSmallTests</span></a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicator.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicator.html b/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicator.html
index cc92c34..d81f347 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicator.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicator.html
@@ -175,7 +175,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
 S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../o
 rg/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
 S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hado
 op/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -235,7 +235,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-i
 nt-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
index ca2f60e..a57fd99 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
@@ -254,9 +254,9 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestWithCellVisibilityLoadAndVerify.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Generator.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Generator.Counts</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestWithCellVisibilityLoadAndVerify.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html b/testdevapidocs/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html
index 8e71381..298c764 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html
@@ -132,7 +132,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.html#line.168">TestFSHDFSUtils.IsFileClosedDistributedFileSystem</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.html#line.170">TestFSHDFSUtils.IsFileClosedDistributedFileSystem</a>
 extends org.apache.hadoop.hdfs.DistributedFileSystem</pre>
 <div class="block">Version of DFS that has HDFS-4525 in it.</div>
 </li>
@@ -262,7 +262,7 @@ extends org.apache.hadoop.hdfs.DistributedFileSystem</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>IsFileClosedDistributedFileSystem</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html#line.168">IsFileClosedDistributedFileSystem</a>()</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html#line.170">IsFileClosedDistributedFileSystem</a>()</pre>
 </li>
 </ul>
 </li>
@@ -279,7 +279,7 @@ extends org.apache.hadoop.hdfs.DistributedFileSystem</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isFileClosed</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html#line.174">isFileClosed</a>(org.apache.hadoop.fs.Path&nbsp;f)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html#line.176">isFileClosed</a>(org.apache.hadoop.fs.Path&nbsp;f)
                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Close status of a file. Copied over from HDFS-4525</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/overview-tree.html b/testdevapidocs/overview-tree.html
index f0750c4..61e467e 100644
--- a/testdevapidocs/overview-tree.html
+++ b/testdevapidocs/overview-tree.html
@@ -3234,7 +3234,9 @@
 </li>
 </ul>
 </li>
+<li type="circle">org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillMasterRSWithSeparateOldWALs</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillSlaveRS</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillSlaveRSWithSeparateOldWALs</span></a></li>
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationSmallTests</span></a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/serialized-form.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/serialized-form.html b/testdevapidocs/serialized-form.html
index bbfe602..0c85490 100644
--- a/testdevapidocs/serialized-form.html
+++ b/testdevapidocs/serialized-form.html
@@ -1405,6 +1405,26 @@
 </a>
 <h3>Class org.apache.hadoop.hbase.quotas.QuotaExceededException extends org.apache.hadoop.hbase.DoNotRetryIOException implements Serializable</h3>
 </li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.quotas.RpcThrottlingException">
+<!--   -->
+</a>
+<h3>Class org.apache.hadoop.hbase.quotas.RpcThrottlingException extends org.apache.hadoop.hbase.HBaseIOException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>waitInterval</h4>
+<pre>long waitInterval</pre>
+</li>
+<li class="blockListLast">
+<h4>type</h4>
+<pre>org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type type</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.quotas.SpaceLimitingException">
 <!--   -->
 </a>
@@ -1440,10 +1460,12 @@
 <li class="blockList">
 <h4>waitInterval</h4>
 <pre>long waitInterval</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 <li class="blockListLast">
 <h4>type</h4>
 <pre>org.apache.hadoop.hbase.quotas.ThrottlingException.Type type</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.CallQueueTooBigExceptionInjector.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.CallQueueTooBigExceptionInjector.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.CallQueueTooBigExceptionInjector.html
index 7b206fe..39db60b 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.CallQueueTooBigExceptionInjector.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.CallQueueTooBigExceptionInjector.html
@@ -39,7 +39,7 @@
 <span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.31"></a>
 <span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.32"></a>
 <span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.34"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.RpcThrottlingException;<a name="line.34"></a>
 <span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.35"></a>
 <span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.37"></a>
@@ -201,12 +201,12 @@
 <span class="sourceLineNo">193</span><a name="line.193"></a>
 <span class="sourceLineNo">194</span>  public static List&lt;Throwable&gt; metaCachePreservingExceptions() {<a name="line.194"></a>
 <span class="sourceLineNo">195</span>    return new ArrayList&lt;Throwable&gt;() {{<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      add(new RegionOpeningException(" "));<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      add(new ThrottlingException(" "));<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      add(new RetryImmediatelyException(" "));<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      add(new CallQueueTooBigException());<a name="line.201"></a>
+<span class="sourceLineNo">196</span>        add(new RegionOpeningException(" "));<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        add(new RpcThrottlingException(" "));<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        add(new RetryImmediatelyException(" "));<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        add(new CallQueueTooBigException());<a name="line.201"></a>
 <span class="sourceLineNo">202</span>    }};<a name="line.202"></a>
 <span class="sourceLineNo">203</span>  }<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>


[29/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html b/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
index 947b310..d989167 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
@@ -123,7 +123,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Public
-public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.38">ThrottlingException.Type</a>
+public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.41">ThrottlingException.Type</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&gt;</pre>
 </li>
 </ul>
@@ -223,7 +223,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NumRequestsExceeded</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.39">NumRequestsExceeded</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.42">NumRequestsExceeded</a></pre>
 </li>
 </ul>
 <a name="RequestSizeExceeded">
@@ -232,7 +232,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>RequestSizeExceeded</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.40">RequestSizeExceeded</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.43">RequestSizeExceeded</a></pre>
 </li>
 </ul>
 <a name="NumReadRequestsExceeded">
@@ -241,7 +241,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NumReadRequestsExceeded</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.41">NumReadRequestsExceeded</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.44">NumReadRequestsExceeded</a></pre>
 </li>
 </ul>
 <a name="NumWriteRequestsExceeded">
@@ -250,7 +250,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NumWriteRequestsExceeded</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.42">NumWriteRequestsExceeded</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.45">NumWriteRequestsExceeded</a></pre>
 </li>
 </ul>
 <a name="WriteSizeExceeded">
@@ -259,7 +259,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>WriteSizeExceeded</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.43">WriteSizeExceeded</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.46">WriteSizeExceeded</a></pre>
 </li>
 </ul>
 <a name="ReadSizeExceeded">
@@ -268,7 +268,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ReadSizeExceeded</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.44">ReadSizeExceeded</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.47">ReadSizeExceeded</a></pre>
 </li>
 </ul>
 </li>
@@ -285,7 +285,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.38">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.41">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -305,7 +305,7 @@ for (ThrottlingException.Type c : ThrottlingException.Type.values())
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.38">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.41">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html b/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html
index bf4003b..6116a49 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html
@@ -18,8 +18,8 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":10,"i2":10,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9};
-var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":41,"i1":42,"i2":42,"i3":41,"i4":41,"i5":41,"i6":41,"i7":41,"i8":41,"i9":41,"i10":41};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
@@ -142,9 +142,13 @@ var activeTableTab = "activeTableTab";
 <dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
 </dl>
 <hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
 <br>
-<pre>@InterfaceAudience.Public
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.34">ThrottlingException</a>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+ @InterfaceAudience.Public
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.37">ThrottlingException</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededException.html" title="class in org.apache.hadoop.hbase.quotas">QuotaExceededException</a></pre>
 <div class="block">Describe the throttling result.
 
@@ -175,7 +179,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -194,23 +200,33 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#MSG_TYPE">MSG_TYPE</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#MSG_TYPE">MSG_TYPE</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#MSG_WAIT">MSG_WAIT</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#MSG_WAIT">MSG_WAIT</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private static long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#serialVersionUID">serialVersionUID</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#serialVersionUID">serialVersionUID</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#type">type</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#type">type</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#waitInterval">waitInterval</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#waitInterval">waitInterval</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -227,12 +243,16 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-java.lang.String-">ThrottlingException</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-java.lang.String-">ThrottlingException</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-java.lang.String-">ThrottlingException</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;type,
                    long&nbsp;waitInterval,
-                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>&nbsp;</td>
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -244,55 +264,77 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 </a>
 <h3>Method Summary</h3>
 <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#formatTime-long-">formatTime</a></span>(long&nbsp;timeDiff)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#formatTime-long-">formatTime</a></span>(long&nbsp;timeDiff)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getWaitInterval--">getWaitInterval</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getWaitInterval--">getWaitInterval</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr id="i3" class="rowColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr id="i5" class="rowColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr id="i6" class="altColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr id="i7" class="rowColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr id="i8" class="altColor">
 <td class="colFirst"><code>private static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-">throwThrottlingException</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;type,
-                        long&nbsp;waitInterval)</code>&nbsp;</td>
+                        long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr id="i9" class="rowColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr id="i10" class="altColor">
 <td class="colFirst"><code>private static long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#timeFromString-java.lang.String-">timeFromString</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timeDiff)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#timeFromString-java.lang.String-">timeFromString</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timeDiff)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
@@ -329,7 +371,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>serialVersionUID</h4>
-<pre>private static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.35">serialVersionUID</a></pre>
+<pre>private static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.38">serialVersionUID</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.quotas.ThrottlingException.serialVersionUID">Constant Field Values</a></dd>
@@ -342,7 +385,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>MSG_TYPE</h4>
-<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.47">MSG_TYPE</a></pre>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.50">MSG_TYPE</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
 <a name="MSG_WAIT">
@@ -351,7 +395,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>MSG_WAIT</h4>
-<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.56">MSG_WAIT</a></pre>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.59">MSG_WAIT</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.quotas.ThrottlingException.MSG_WAIT">Constant Field Values</a></dd>
@@ -364,7 +409,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>waitInterval</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.58">waitInterval</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.61">waitInterval</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
 <a name="type">
@@ -373,7 +419,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockListLast">
 <li class="blockList">
 <h4>type</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.59">type</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.62">type</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
 </li>
@@ -390,7 +437,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>ThrottlingException</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.61">ThrottlingException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.64">ThrottlingException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
 <a name="ThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-java.lang.String-">
@@ -399,9 +447,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ThrottlingException</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.77">ThrottlingException</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;type,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.80">ThrottlingException</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;type,
                            long&nbsp;waitInterval,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
 </li>
@@ -418,7 +467,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>getType</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.83">getType</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.86">getType</a>()</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
 <a name="getWaitInterval--">
@@ -427,7 +477,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>getWaitInterval</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.87">getWaitInterval</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.90">getWaitInterval</a>()</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
 <a name="throwNumRequestsExceeded-long-">
@@ -436,8 +487,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>throwNumRequestsExceeded</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.91">throwNumRequestsExceeded</a>(long&nbsp;waitInterval)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.94">throwNumRequestsExceeded</a>(long&nbsp;waitInterval)
                                      throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -450,8 +502,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>throwRequestSizeExceeded</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.96">throwRequestSizeExceeded</a>(long&nbsp;waitInterval)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.99">throwRequestSizeExceeded</a>(long&nbsp;waitInterval)
                                      throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -464,8 +517,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>throwNumReadRequestsExceeded</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.101">throwNumReadRequestsExceeded</a>(long&nbsp;waitInterval)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.104">throwNumReadRequestsExceeded</a>(long&nbsp;waitInterval)
                                          throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -478,8 +532,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>throwNumWriteRequestsExceeded</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.106">throwNumWriteRequestsExceeded</a>(long&nbsp;waitInterval)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.109">throwNumWriteRequestsExceeded</a>(long&nbsp;waitInterval)
                                           throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -492,8 +547,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>throwWriteSizeExceeded</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.111">throwWriteSizeExceeded</a>(long&nbsp;waitInterval)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.114">throwWriteSizeExceeded</a>(long&nbsp;waitInterval)
                                    throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -506,8 +562,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>throwReadSizeExceeded</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.116">throwReadSizeExceeded</a>(long&nbsp;waitInterval)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.119">throwReadSizeExceeded</a>(long&nbsp;waitInterval)
                                   throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -520,9 +577,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>throwThrottlingException</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.121">throwThrottlingException</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;type,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.124">throwThrottlingException</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;type,
                                              long&nbsp;waitInterval)
                                       throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -535,7 +593,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>formatTime</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.127">formatTime</a>(long&nbsp;timeDiff)</pre>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.130">formatTime</a>(long&nbsp;timeDiff)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
 <a name="timeFromString-java.lang.String-">
@@ -544,7 +603,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockListLast">
 <li class="blockList">
 <h4>timeFromString</h4>
-<pre>private static&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.147">timeFromString</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timeDiff)</pre>
+<pre>private static&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.150">timeFromString</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timeDiff)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html b/devapidocs/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
index 7a8f652..9845708 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
@@ -400,7 +400,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
 <h4>checkQuota</h4>
 <pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#line.113">checkQuota</a>(long&nbsp;writeSize,
                        long&nbsp;readSize)
-                throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+                throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-">QuotaLimiter</a></code></span></div>
 <div class="block">Checks if it is possible to execute the specified operation.</div>
 <dl>
@@ -410,7 +410,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
 <dd><code>writeSize</code> - the write size that will be checked against the available quota</dd>
 <dd><code>readSize</code> - the read size that will be checked against the available quota</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code> - thrown if not enough avialable resources to perform operation.</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - thrown if not enough avialable resources to perform operation.</dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html
index cd1b837..e2b4686 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html
@@ -111,7 +111,9 @@
 <tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></span></code>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
 </td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html
new file mode 100644
index 0000000..1e34500
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html
@@ -0,0 +1,218 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type" class="title">Uses of Class<br>org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.quotas">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a> declared as <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#type">type</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a> that return <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getType--">getType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.Type.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.Type.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a> with parameters of type <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>private static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-">throwThrottlingException</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&nbsp;type,
+                        long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a> with parameters of type <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-java.lang.String-">RpcThrottlingException</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&nbsp;type,
+                      long&nbsp;waitInterval,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html
new file mode 100644
index 0000000..f7bd99d
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html
@@ -0,0 +1,250 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException" class="title">Uses of Class<br>org.apache.hadoop.hbase.quotas.RpcThrottlingException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.quotas">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a> in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a> that throw <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">DefaultOperationQuota.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html#checkQuota-int-int-int-">checkQuota</a></span>(int&nbsp;numWrites,
+          int&nbsp;numReads,
+          int&nbsp;numScans)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">OperationQuota.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html#checkQuota-int-int-int-">checkQuota</a></span>(int&nbsp;numWrites,
+          int&nbsp;numReads,
+          int&nbsp;numScans)</code>
+<div class="block">Checks if it is possible to execute the specified operation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">NoopOperationQuota.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/NoopOperationQuota.html#checkQuota-int-int-int-">checkQuota</a></span>(int&nbsp;numWrites,
+          int&nbsp;numReads,
+          int&nbsp;numScans)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">TimeBasedLimiter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#checkQuota-long-long-">checkQuota</a></span>(long&nbsp;writeSize,
+          long&nbsp;readSize)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">QuotaLimiter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-">checkQuota</a></span>(long&nbsp;estimateWriteSize,
+          long&nbsp;estimateReadSize)</code>
+<div class="block">Checks if it is possible to execute the specified operation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">NoopQuotaLimiter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#checkQuota-long-long-">checkQuota</a></span>(long&nbsp;estimateWriteSize,
+          long&nbsp;estimateReadSize)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RegionServerRpcQuotaManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html#checkQuota-org.apache.hadoop.hbase.regionserver.Region-int-int-int-">checkQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;region,
+          int&nbsp;numWrites,
+          int&nbsp;numReads,
+          int&nbsp;numScans)</code>
+<div class="block">Check the quota for the current (rpc-context) user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RegionServerRpcQuotaManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html#checkQuota-org.apache.hadoop.hbase.regionserver.Region-java.util.List-">checkQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;region,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.Action&gt;&nbsp;actions)</code>
+<div class="block">Check the quota for the current (rpc-context) user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RegionServerRpcQuotaManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html#checkQuota-org.apache.hadoop.hbase.regionserver.Region-org.apache.hadoop.hbase.quotas.OperationQuota.OperationType-">checkQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;region,
+          <a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas">OperationQuota.OperationType</a>&nbsp;type)</code>
+<div class="block">Check the quota for the current (rpc-context) user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-">throwThrottlingException</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&nbsp;type,
+                        long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html
index ee27494..2f190d1 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html
@@ -104,7 +104,9 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#type">type</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#type">type</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 </tbody>
 </table>
@@ -117,7 +119,9 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></code></td>
@@ -144,7 +148,9 @@ the order they are declared.</div>
 <tr class="altColor">
 <td class="colFirst"><code>private static void</code></td>
 <td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-">throwThrottlingException</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;type,
-                        long&nbsp;waitInterval)</code>&nbsp;</td>
+                        long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 </tbody>
 </table>
@@ -157,7 +163,9 @@ the order they are declared.</div>
 <tr class="altColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-java.lang.String-">ThrottlingException</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;type,
                    long&nbsp;waitInterval,
-                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>&nbsp;</td>
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 </tbody>
 </table>


[14/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html
index 3cead14..f01b6d1 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html
@@ -127,178 +127,184 @@
 <span class="sourceLineNo">119</span>      admin2.createNamespace(NamespaceDescriptor.create("NS").build());<a name="line.119"></a>
 <span class="sourceLineNo">120</span>    }<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    testEditsBehindDroppedTable(true, "NS:test_dropped");<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  }<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>  private void testEditsBehindDroppedTable(boolean allowProceeding, String tName) throws Exception {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    conf1.setBoolean(HConstants.REPLICATION_DROP_ON_DELETED_TABLE_KEY, allowProceeding);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    conf1.setInt(HConstants.REPLICATION_SOURCE_MAXTHREADS_KEY, 1);<a name="line.126"></a>
-<span class="sourceLineNo">127</span><a name="line.127"></a>
-<span class="sourceLineNo">128</span>    // make sure we have a single region server only, so that all<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    // edits for all tables go there<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    utility1.shutdownMiniHBaseCluster();<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    utility1.startMiniHBaseCluster(1, 1);<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>    TableName tablename = TableName.valueOf(tName);<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    byte[] familyname = Bytes.toBytes("fam");<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    byte[] row = Bytes.toBytes("row");<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span>    HTableDescriptor table = new HTableDescriptor(tablename);<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    HColumnDescriptor fam = new HColumnDescriptor(familyname);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    table.addFamily(fam);<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span>    Connection connection1 = ConnectionFactory.createConnection(conf1);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    Connection connection2 = ConnectionFactory.createConnection(conf2);<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    try (Admin admin1 = connection1.getAdmin()) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      admin1.createTable(table);<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    }<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    try (Admin admin2 = connection2.getAdmin()) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      admin2.createTable(table);<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    }<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    utility1.waitUntilAllRegionsAssigned(tablename);<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    utility2.waitUntilAllRegionsAssigned(tablename);<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>    Table lHtable1 = utility1.getConnection().getTable(tablename);<a name="line.153"></a>
-<span class="sourceLineNo">154</span><a name="line.154"></a>
-<span class="sourceLineNo">155</span>    // now suspend replication<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    admin.disablePeer("2");<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span>    // put some data (lead with 0 so the edit gets sorted before the other table's edits<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    //   in the replication batch)<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    // write a bunch of edits, making sure we fill a batch<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    byte[] rowkey = Bytes.toBytes(0+" put on table to be dropped");<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    Put put = new Put(rowkey);<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    put.addColumn(familyname, row, row);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    lHtable1.put(put);<a name="line.164"></a>
-<span class="sourceLineNo">165</span><a name="line.165"></a>
-<span class="sourceLineNo">166</span>    rowkey = Bytes.toBytes("normal put");<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    put = new Put(rowkey);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    put.addColumn(famName, row, row);<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    htable1.put(put);<a name="line.169"></a>
-<span class="sourceLineNo">170</span><a name="line.170"></a>
-<span class="sourceLineNo">171</span>    try (Admin admin1 = connection1.getAdmin()) {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>      admin1.disableTable(tablename);<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      admin1.deleteTable(tablename);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    try (Admin admin2 = connection2.getAdmin()) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      admin2.disableTable(tablename);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      admin2.deleteTable(tablename);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>    admin.enablePeer("2");<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    if (allowProceeding) {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      // in this we'd expect the key to make it over<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      verifyReplicationProceeded(rowkey);<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    } else {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      verifyReplicationStuck(rowkey);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    }<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    // just to be safe<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    conf1.setBoolean(HConstants.REPLICATION_DROP_ON_DELETED_TABLE_KEY, false);<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  }<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  @Test<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  public void testEditsBehindDroppedTableTiming() throws Exception {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    conf1.setBoolean(HConstants.REPLICATION_DROP_ON_DELETED_TABLE_KEY, true);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    conf1.setInt(HConstants.REPLICATION_SOURCE_MAXTHREADS_KEY, 1);<a name="line.194"></a>
-<span class="sourceLineNo">195</span><a name="line.195"></a>
-<span class="sourceLineNo">196</span>    // make sure we have a single region server only, so that all<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    // edits for all tables go there<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    utility1.shutdownMiniHBaseCluster();<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    utility1.startMiniHBaseCluster(1, 1);<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>    TableName tablename = TableName.valueOf("testdroppedtimed");<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    byte[] familyname = Bytes.toBytes("fam");<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    byte[] row = Bytes.toBytes("row");<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>    HTableDescriptor table = new HTableDescriptor(tablename);<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    HColumnDescriptor fam = new HColumnDescriptor(familyname);<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    table.addFamily(fam);<a name="line.208"></a>
-<span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span>    Connection connection1 = ConnectionFactory.createConnection(conf1);<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    Connection connection2 = ConnectionFactory.createConnection(conf2);<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    try (Admin admin1 = connection1.getAdmin()) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      admin1.createTable(table);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    }<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    try (Admin admin2 = connection2.getAdmin()) {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      admin2.createTable(table);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    }<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    utility1.waitUntilAllRegionsAssigned(tablename);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    utility2.waitUntilAllRegionsAssigned(tablename);<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>    Table lHtable1 = utility1.getConnection().getTable(tablename);<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>    // now suspend replication<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    admin.disablePeer("2");<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>    // put some data (lead with 0 so the edit gets sorted before the other table's edits<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    //   in the replication batch)<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    // write a bunch of edits, making sure we fill a batch<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    byte[] rowkey = Bytes.toBytes(0+" put on table to be dropped");<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    Put put = new Put(rowkey);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    put.addColumn(familyname, row, row);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    lHtable1.put(put);<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>    rowkey = Bytes.toBytes("normal put");<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    put = new Put(rowkey);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    put.addColumn(famName, row, row);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    htable1.put(put);<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    try (Admin admin2 = connection2.getAdmin()) {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      admin2.disableTable(tablename);<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      admin2.deleteTable(tablename);<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    admin.enablePeer("2");<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    // edit should still be stuck<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>    try (Admin admin1 = connection1.getAdmin()) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      // the source table still exists, replication should be stalled<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      verifyReplicationStuck(rowkey);<a name="line.249"></a>
-<span class="sourceLineNo">250</span><a name="line.250"></a>
-<span class="sourceLineNo">251</span>      admin1.disableTable(tablename);<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      // still stuck, source table still exists<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      verifyReplicationStuck(rowkey);<a name="line.253"></a>
-<span class="sourceLineNo">254</span><a name="line.254"></a>
-<span class="sourceLineNo">255</span>      admin1.deleteTable(tablename);<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      // now the source table is gone, replication should proceed, the<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      // offending edits be dropped<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      verifyReplicationProceeded(rowkey);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    // just to be safe<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    conf1.setBoolean(HConstants.REPLICATION_DROP_ON_DELETED_TABLE_KEY, false);<a name="line.261"></a>
-<span class="sourceLineNo">262</span>  }<a name="line.262"></a>
-<span class="sourceLineNo">263</span><a name="line.263"></a>
-<span class="sourceLineNo">264</span>  private void verifyReplicationProceeded(byte[] rowkey) throws Exception {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    Get get = new Get(rowkey);<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      if (i==NB_RETRIES-1) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>        fail("Waited too much time for put replication");<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      }<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      Result res = htable2.get(get);<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      if (res.size() == 0) {<a name="line.271"></a>
-<span class="sourceLineNo">272</span>        LOG.info("Row not available");<a name="line.272"></a>
-<span class="sourceLineNo">273</span>        Thread.sleep(SLEEP_TIME);<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      } else {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>        assertArrayEquals(res.getRow(), rowkey);<a name="line.275"></a>
-<span class="sourceLineNo">276</span>        break;<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      }<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    }<a name="line.278"></a>
-<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
-<span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>  private void verifyReplicationStuck(byte[] rowkey) throws Exception {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    Get get = new Get(rowkey);<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      Result res = htable2.get(get);<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      if (res.size() &gt;= 1) {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>        fail("Edit should have been stuck behind dropped tables");<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      } else {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>        LOG.info("Row not replicated, let's wait a bit more...");<a name="line.288"></a>
-<span class="sourceLineNo">289</span>        Thread.sleep(SLEEP_TIME);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>}<a name="line.293"></a>
+<span class="sourceLineNo">122</span>    try (Admin admin1 = connection1.getAdmin()) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      admin1.deleteNamespace("NS");<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    try (Admin admin2 = connection2.getAdmin()) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      admin2.deleteNamespace("NS");<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    }<a name="line.127"></a>
+<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span>  private void testEditsBehindDroppedTable(boolean allowProceeding, String tName) throws Exception {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    conf1.setBoolean(HConstants.REPLICATION_DROP_ON_DELETED_TABLE_KEY, allowProceeding);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    conf1.setInt(HConstants.REPLICATION_SOURCE_MAXTHREADS_KEY, 1);<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>    // make sure we have a single region server only, so that all<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    // edits for all tables go there<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    utility1.shutdownMiniHBaseCluster();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    utility1.startMiniHBaseCluster(1, 1);<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>    TableName tablename = TableName.valueOf(tName);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    byte[] familyname = Bytes.toBytes("fam");<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    byte[] row = Bytes.toBytes("row");<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>    HTableDescriptor table = new HTableDescriptor(tablename);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    HColumnDescriptor fam = new HColumnDescriptor(familyname);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    table.addFamily(fam);<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>    Connection connection1 = ConnectionFactory.createConnection(conf1);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    Connection connection2 = ConnectionFactory.createConnection(conf2);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    try (Admin admin1 = connection1.getAdmin()) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      admin1.createTable(table);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    }<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    try (Admin admin2 = connection2.getAdmin()) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      admin2.createTable(table);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    utility1.waitUntilAllRegionsAssigned(tablename);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    utility2.waitUntilAllRegionsAssigned(tablename);<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>    Table lHtable1 = utility1.getConnection().getTable(tablename);<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span>    // now suspend replication<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    admin.disablePeer("2");<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>    // put some data (lead with 0 so the edit gets sorted before the other table's edits<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    //   in the replication batch)<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    // write a bunch of edits, making sure we fill a batch<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    byte[] rowkey = Bytes.toBytes(0+" put on table to be dropped");<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    Put put = new Put(rowkey);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    put.addColumn(familyname, row, row);<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    lHtable1.put(put);<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>    rowkey = Bytes.toBytes("normal put");<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    put = new Put(rowkey);<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    put.addColumn(famName, row, row);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    htable1.put(put);<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>    try (Admin admin1 = connection1.getAdmin()) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      admin1.disableTable(tablename);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      admin1.deleteTable(tablename);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    try (Admin admin2 = connection2.getAdmin()) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      admin2.disableTable(tablename);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      admin2.deleteTable(tablename);<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>    admin.enablePeer("2");<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    if (allowProceeding) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      // in this we'd expect the key to make it over<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      verifyReplicationProceeded(rowkey);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    } else {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      verifyReplicationStuck(rowkey);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    // just to be safe<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    conf1.setBoolean(HConstants.REPLICATION_DROP_ON_DELETED_TABLE_KEY, false);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>  @Test<a name="line.197"></a>
+<span class="sourceLineNo">198</span>  public void testEditsBehindDroppedTableTiming() throws Exception {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    conf1.setBoolean(HConstants.REPLICATION_DROP_ON_DELETED_TABLE_KEY, true);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    conf1.setInt(HConstants.REPLICATION_SOURCE_MAXTHREADS_KEY, 1);<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>    // make sure we have a single region server only, so that all<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    // edits for all tables go there<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    utility1.shutdownMiniHBaseCluster();<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    utility1.startMiniHBaseCluster(1, 1);<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>    TableName tablename = TableName.valueOf("testdroppedtimed");<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    byte[] familyname = Bytes.toBytes("fam");<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    byte[] row = Bytes.toBytes("row");<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>    HTableDescriptor table = new HTableDescriptor(tablename);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    HColumnDescriptor fam = new HColumnDescriptor(familyname);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    table.addFamily(fam);<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>    Connection connection1 = ConnectionFactory.createConnection(conf1);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    Connection connection2 = ConnectionFactory.createConnection(conf2);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    try (Admin admin1 = connection1.getAdmin()) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      admin1.createTable(table);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    }<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    try (Admin admin2 = connection2.getAdmin()) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      admin2.createTable(table);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    }<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    utility1.waitUntilAllRegionsAssigned(tablename);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    utility2.waitUntilAllRegionsAssigned(tablename);<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>    Table lHtable1 = utility1.getConnection().getTable(tablename);<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>    // now suspend replication<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    admin.disablePeer("2");<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>    // put some data (lead with 0 so the edit gets sorted before the other table's edits<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    //   in the replication batch)<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    // write a bunch of edits, making sure we fill a batch<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    byte[] rowkey = Bytes.toBytes(0+" put on table to be dropped");<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    Put put = new Put(rowkey);<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    put.addColumn(familyname, row, row);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    lHtable1.put(put);<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>    rowkey = Bytes.toBytes("normal put");<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    put = new Put(rowkey);<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    put.addColumn(famName, row, row);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    htable1.put(put);<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>    try (Admin admin2 = connection2.getAdmin()) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      admin2.disableTable(tablename);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      admin2.deleteTable(tablename);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    }<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>    admin.enablePeer("2");<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    // edit should still be stuck<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>    try (Admin admin1 = connection1.getAdmin()) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      // the source table still exists, replication should be stalled<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      verifyReplicationStuck(rowkey);<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>      admin1.disableTable(tablename);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      // still stuck, source table still exists<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      verifyReplicationStuck(rowkey);<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>      admin1.deleteTable(tablename);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      // now the source table is gone, replication should proceed, the<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      // offending edits be dropped<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      verifyReplicationProceeded(rowkey);<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    }<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    // just to be safe<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    conf1.setBoolean(HConstants.REPLICATION_DROP_ON_DELETED_TABLE_KEY, false);<a name="line.267"></a>
+<span class="sourceLineNo">268</span>  }<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>  private void verifyReplicationProceeded(byte[] rowkey) throws Exception {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    Get get = new Get(rowkey);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      if (i==NB_RETRIES-1) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        fail("Waited too much time for put replication");<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      Result res = htable2.get(get);<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      if (res.size() == 0) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        LOG.info("Row not available");<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        Thread.sleep(SLEEP_TIME);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>      } else {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        assertArrayEquals(res.getRow(), rowkey);<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        break;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      }<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  }<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span>  private void verifyReplicationStuck(byte[] rowkey) throws Exception {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    Get get = new Get(rowkey);<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      Result res = htable2.get(get);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>      if (res.size() &gt;= 1) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        fail("Edit should have been stuck behind dropped tables");<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        LOG.info("Row not replicated, let's wait a bit more...");<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        Thread.sleep(SLEEP_TIME);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      }<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
+<span class="sourceLineNo">298</span>  }<a name="line.298"></a>
+<span class="sourceLineNo">299</span>}<a name="line.299"></a>
 
 
 


[25/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
index 42aea6a..6bddba3 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -570,14 +570,14 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterManager.ServiceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ResourceChecker.Phase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.CommandProvider.Operation.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ResourceChecker.Phase</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
index 28973e0..a1c9b1d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
@@ -81,14 +81,14 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.Procedure&lt;TEnvironment&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;)
+<li type="circle">org.apache.hadoop.hbase.procedure.Procedure (implements java.util.concurrent.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a>&lt;V&gt;, org.apache.hadoop.hbase.errorhandling.ForeignExceptionListener)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureDescriber.TestProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedureDescriber.TestProcedure</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedure.LatchedProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedure.LatchedProcedure</span></a></li>
 </ul>
 </li>
-<li type="circle">org.apache.hadoop.hbase.procedure.Procedure (implements java.util.concurrent.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a>&lt;V&gt;, org.apache.hadoop.hbase.errorhandling.ForeignExceptionListener)
+<li type="circle">org.apache.hadoop.hbase.procedure2.Procedure&lt;TEnvironment&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedure.LatchedProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedure.LatchedProcedure</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureDescriber.TestProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedureDescriber.TestProcedure</span></a></li>
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.hbase.procedure.ProcedureManager

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 19002f2..fbff915 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -205,9 +205,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestYieldProcedures.TestStateMachineProcedure.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestStateMachineProcedure.TestSMProcedureState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html b/testdevapidocs/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html
index a551938..49fe6cb 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.61">TestQuotaAdmin</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.70">TestQuotaAdmin</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">minicluster tests that validate that quota  entries are properly set in the quota table</div>
 </li>
@@ -209,22 +209,26 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i7" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testQuotaRetrieverFilter--">testQuotaRetrieverFilter</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testMultiQuotaThrottling--">testMultiQuotaThrottling</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i8" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testSetGetRemoveSpaceQuota--">testSetGetRemoveSpaceQuota</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testQuotaRetrieverFilter--">testQuotaRetrieverFilter</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i9" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testSetModifyRemoveQuota--">testSetModifyRemoveQuota</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testSetGetRemoveSpaceQuota--">testSetGetRemoveSpaceQuota</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i10" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testSimpleScan--">testSimpleScan</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testSetModifyRemoveQuota--">testSetModifyRemoveQuota</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i11" class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testSimpleScan--">testSimpleScan</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testThrottleType--">testThrottleType</a></span>()</code>&nbsp;</td>
 </tr>
 </table>
@@ -255,7 +259,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.64">CLASS_RULE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.73">CLASS_RULE</a></pre>
 </li>
 </ul>
 <a name="LOG">
@@ -264,7 +268,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.67">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.76">LOG</a></pre>
 </li>
 </ul>
 <a name="TEST_UTIL">
@@ -273,7 +277,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TEST_UTIL</h4>
-<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.69">TEST_UTIL</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.78">TEST_UTIL</a></pre>
 </li>
 </ul>
 </li>
@@ -290,7 +294,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestQuotaAdmin</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.61">TestQuotaAdmin</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.70">TestQuotaAdmin</a>()</pre>
 </li>
 </ul>
 </li>
@@ -307,7 +311,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setUpBeforeClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.72">setUpBeforeClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.81">setUpBeforeClass</a>()
                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -321,7 +325,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>clearQuotaTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.85">clearQuotaTable</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.94">clearQuotaTable</a>()
                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -335,7 +339,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDownAfterClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.93">tearDownAfterClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.102">tearDownAfterClass</a>()
                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -349,7 +353,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testThrottleType</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.98">testThrottleType</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.107">testThrottleType</a>()
                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -363,7 +367,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSimpleScan</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.146">testSimpleScan</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.155">testSimpleScan</a>()
                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -371,13 +375,27 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
+<a name="testMultiQuotaThrottling--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testMultiQuotaThrottling</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.196">testMultiQuotaThrottling</a>()
+                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="testQuotaRetrieverFilter--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>testQuotaRetrieverFilter</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.187">testQuotaRetrieverFilter</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.239">testQuotaRetrieverFilter</a>()
                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -391,7 +409,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetGetRemoveSpaceQuota</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.266">testSetGetRemoveSpaceQuota</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.318">testSetGetRemoveSpaceQuota</a>()
                                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -405,7 +423,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetModifyRemoveQuota</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.319">testSetModifyRemoveQuota</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.371">testSetModifyRemoveQuota</a>()
                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -419,7 +437,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>assertNumResults</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.400">assertNumResults</a>(int&nbsp;expected,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.452">assertNumResults</a>(int&nbsp;expected,
                               org.apache.hadoop.hbase.quotas.QuotaFilter&nbsp;filter)
                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
@@ -434,7 +452,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>assertSpaceQuota</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.404">assertSpaceQuota</a>(long&nbsp;sizeLimit,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.456">assertSpaceQuota</a>(long&nbsp;sizeLimit,
                               org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;violationPolicy,
                               org.apache.hadoop.hbase.Cell&nbsp;cell)
                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
@@ -450,7 +468,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>assertSpaceQuota</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.414">assertSpaceQuota</a>(long&nbsp;sizeLimit,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.466">assertSpaceQuota</a>(long&nbsp;sizeLimit,
                               org.apache.hadoop.hbase.quotas.SpaceViolationPolicy&nbsp;violationPolicy,
                               org.apache.hadoop.hbase.quotas.QuotaSettings&nbsp;actualSettings)</pre>
 </li>
@@ -461,7 +479,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>countResults</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.424">countResults</a>(org.apache.hadoop.hbase.quotas.QuotaFilter&nbsp;filter)
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#line.476">countResults</a>(org.apache.hadoop.hbase.quotas.QuotaFilter&nbsp;filter)
                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 6f26e19..0bff33a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -656,10 +656,10 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestCacheOnWriteInSchema.CacheOnWriteType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.ActionType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMultiLogThreshold.ActionType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html
index a7cbaef..c1d9f54 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9,"i6":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":10,"i6":9,"i7":9,"i8":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.56">TestNamespaceReplication</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.63">TestNamespaceReplication</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></pre>
 </li>
 </ul>
@@ -175,14 +175,18 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#ns2">ns2</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#serialPeer">serialPeer</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private static org.apache.hadoop.hbase.TableName</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#tabAName">tabAName</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static org.apache.hadoop.hbase.TableName</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#tabBName">tabBName</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#val">val</a></span></code>&nbsp;</td>
 </tr>
@@ -192,7 +196,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
 .html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
 ">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -244,20 +248,28 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
                    byte[]...&nbsp;families)</code>&nbsp;</td>
 </tr>
 <tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#isSerialPeer--">isSerialPeer</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#parameters--">parameters</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#put-org.apache.hadoop.hbase.client.Table-byte:A-byte:A...-">put</a></span>(org.apache.hadoop.hbase.client.Table&nbsp;source,
    byte[]&nbsp;row,
    byte[]...&nbsp;families)</code>&nbsp;</td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#setUpBeforeClass--">setUpBeforeClass</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#tearDownAfterClass--">tearDownAfterClass</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#testNamespaceReplication--">testNamespaceReplication</a></span>()</code>&nbsp;</td>
 </tr>
@@ -267,7 +279,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -296,7 +308,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.59">CLASS_RULE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.66">CLASS_RULE</a></pre>
 </li>
 </ul>
 <a name="LOG">
@@ -305,7 +317,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.62">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.69">LOG</a></pre>
 </li>
 </ul>
 <a name="ns1">
@@ -314,7 +326,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>ns1</h4>
-<pre>private static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.64">ns1</a></pre>
+<pre>private static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.71">ns1</a></pre>
 </li>
 </ul>
 <a name="ns2">
@@ -323,7 +335,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>ns2</h4>
-<pre>private static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.65">ns2</a></pre>
+<pre>private static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.72">ns2</a></pre>
 </li>
 </ul>
 <a name="tabAName">
@@ -332,7 +344,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>tabAName</h4>
-<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.67">tabAName</a></pre>
+<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.74">tabAName</a></pre>
 </li>
 </ul>
 <a name="tabBName">
@@ -341,7 +353,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>tabBName</h4>
-<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.68">tabBName</a></pre>
+<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.75">tabBName</a></pre>
 </li>
 </ul>
 <a name="f1Name">
@@ -350,7 +362,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>f1Name</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.70">f1Name</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.77">f1Name</a></pre>
 </li>
 </ul>
 <a name="f2Name">
@@ -359,7 +371,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>f2Name</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.71">f2Name</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.78">f2Name</a></pre>
 </li>
 </ul>
 <a name="val">
@@ -368,7 +380,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>val</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.73">val</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.80">val</a></pre>
 </li>
 </ul>
 <a name="connection1">
@@ -377,7 +389,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>connection1</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.client.Connection <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.75">connection1</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.Connection <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.82">connection1</a></pre>
 </li>
 </ul>
 <a name="connection2">
@@ -386,7 +398,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>connection2</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.client.Connection <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.76">connection2</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.Connection <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.83">connection2</a></pre>
 </li>
 </ul>
 <a name="admin1">
@@ -395,16 +407,25 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>admin1</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.77">admin1</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.84">admin1</a></pre>
 </li>
 </ul>
 <a name="admin2">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>admin2</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.78">admin2</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.85">admin2</a></pre>
+</li>
+</ul>
+<a name="serialPeer">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>serialPeer</h4>
+<pre>public&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.88">serialPeer</a></pre>
 </li>
 </ul>
 </li>
@@ -421,7 +442,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestNamespaceReplication</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.56">TestNamespaceReplication</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.63">TestNamespaceReplication</a>()</pre>
 </li>
 </ul>
 </li>
@@ -432,13 +453,35 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Method Detail</h3>
+<a name="isSerialPeer--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSerialPeer</h4>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.91">isSerialPeer</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="parameters--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parameters</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.96">parameters</a>()</pre>
+</li>
+</ul>
 <a name="setUpBeforeClass--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>setUpBeforeClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.81">setUpBeforeClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.101">setUpBeforeClass</a>()
                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -452,7 +495,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDownAfterClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.114">tearDownAfterClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.134">tearDownAfterClass</a>()
                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -466,7 +509,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>testNamespaceReplication</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.135">testNamespaceReplication</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.155">testNamespaceReplication</a>()
                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -480,7 +523,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.192">put</a>(org.apache.hadoop.hbase.client.Table&nbsp;source,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.212">put</a>(org.apache.hadoop.hbase.client.Table&nbsp;source,
                  byte[]&nbsp;row,
                  byte[]...&nbsp;families)
           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
@@ -496,7 +539,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>delete</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.201">delete</a>(org.apache.hadoop.hbase.client.Table&nbsp;source,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.221">delete</a>(org.apache.hadoop.hbase.client.Table&nbsp;source,
                     byte[]&nbsp;row,
                     byte[]...&nbsp;families)
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
@@ -512,7 +555,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>ensureRowExisted</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.210">ensureRowExisted</a>(org.apache.hadoop.hbase.client.Table&nbsp;target,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.230">ensureRowExisted</a>(org.apache.hadoop.hbase.client.Table&nbsp;target,
                               byte[]&nbsp;row,
                               byte[]...&nbsp;families)
                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
@@ -528,7 +571,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ensureRowNotExisted</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.232">ensureRowNotExisted</a>(org.apache.hadoop.hbase.client.Table&nbsp;target,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#line.252">ensureRowNotExisted</a>(org.apache.hadoop.hbase.client.Table&nbsp;target,
                                  byte[]&nbsp;row,
                                  byte[]...&nbsp;families)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>


[31/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 5d4b9c2..847ef26 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -31337,7 +31337,7 @@
  - nested exceptions
 
  Looks for: RegionMovedException / RegionOpeningException / RegionTooBusyException /
-            ThrottlingException</div>
+            RpcThrottlingException</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.html#findExpiredFiles-org.apache.hbase.thirdparty.com.google.common.collect.ImmutableList-long-java.util.List-java.util.Collection-">findExpiredFiles(ImmutableList&lt;HStoreFile&gt;, long, List&lt;HStoreFile&gt;, Collection&lt;HStoreFile&gt;)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.html" title="class in org.apache.hadoop.hbase.regionserver">StripeStoreFileManager</a></dt>
 <dd>&nbsp;</dd>
@@ -32484,7 +32484,9 @@
 <div class="block">Format the given ThreadInfo object as a String.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#formatTime-long-">formatTime(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#formatZKString--">formatZKString()</a></span> - Method in class org.apache.hadoop.hbase.tmpl.master.<a href="org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmplImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/http/log/LogLevel.Servlet.html#FORMS">FORMS</a></span> - Static variable in class org.apache.hadoop.hbase.http.log.<a href="org/apache/hadoop/hbase/http/log/LogLevel.Servlet.html" title="class in org.apache.hadoop.hbase.http.log">LogLevel.Servlet</a></dt>
@@ -51977,8 +51979,12 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/PrivateCellUtil.LastOnRowCell.html#getType--">getType()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/PrivateCellUtil.LastOnRowCell.html" title="class in org.apache.hadoop.hbase">PrivateCellUtil.LastOnRowCell</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getType--">getType()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/Tag.html#getType--">getType()</a></span> - Method in interface org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/Tag.html" title="interface in org.apache.hadoop.hbase">Tag</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ByteBufferKeyOnlyKeyValue.html#getTypeByte--">getTypeByte()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ByteBufferKeyOnlyKeyValue.html" title="class in org.apache.hadoop.hbase">ByteBufferKeyOnlyKeyValue</a></dt>
@@ -52754,8 +52760,12 @@
 <dd>
 <div class="block">Time in milliseconds to wait for before requesting to consume 'amount' resource.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#getWaitInterval--">getWaitInterval()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getWaitInterval--">getWaitInterval()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#getWaitInterval--">getWaitInterval()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/WALCoprocessorEnvironment.html#getWAL--">getWAL()</a></span> - Method in interface org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/WALCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">WALCoprocessorEnvironment</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#getWAL--">getWAL()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a></dt>
@@ -74232,10 +74242,18 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmplImpl.html#mServerWrap">mServerWrap</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">ServerMetricsTmplImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#MSG_TYPE">MSG_TYPE</a></span> - Static variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#MSG_TYPE">MSG_TYPE</a></span> - Static variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#MSG_WAIT">MSG_WAIT</a></span> - Static variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#MSG_WAIT">MSG_WAIT</a></span> - Static variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html#msgInterval">msgInterval</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#MSLAB_CLASS_NAME">MSLAB_CLASS_NAME</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></dt>
@@ -94639,6 +94657,16 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/monitoring/TaskMonitor.html#rpcTasks">rpcTasks</a></span> - Variable in class org.apache.hadoop.hbase.monitoring.<a href="org/apache/hadoop/hbase/monitoring/TaskMonitor.html" title="class in org.apache.hadoop.hbase.monitoring">TaskMonitor</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException</span></a> - Exception in <a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></dt>
+<dd>
+<div class="block">Describe the throttling result.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-java.lang.String-">RpcThrottlingException(String)</a></span> - Constructor for exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-java.lang.String-">RpcThrottlingException(RpcThrottlingException.Type, long, String)</a></span> - Constructor for exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a> - Enum in <a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#rpcTimeout">rpcTimeout</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncConnectionImpl.html" title="class in org.apache.hadoop.hbase.client">AsyncConnectionImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncProcessTask.Builder.html#rpcTimeout">rpcTimeout</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncProcessTask.Builder.html" title="class in org.apache.hadoop.hbase.client">AsyncProcessTask.Builder</a></dt>
@@ -97503,7 +97531,9 @@ service.</div>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/SpaceLimitingException.html#serialVersionUID">serialVersionUID</a></span> - Static variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas">SpaceLimitingException</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#serialVersionUID">serialVersionUID</a></span> - Static variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/RegionException.html#serialVersionUID">serialVersionUID</a></span> - Static variable in exception org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/RegionException.html" title="class in org.apache.hadoop.hbase">RegionException</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/LeaseException.html#serialVersionUID">serialVersionUID</a></span> - Static variable in exception org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/LeaseException.html" title="class in org.apache.hadoop.hbase.regionserver">LeaseException</a></dt>
@@ -111036,14 +111066,22 @@ service.</div>
 </dd>
 <dt><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException</span></a> - Exception in <a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></dt>
 <dd>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">replaced by <a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-java.lang.String-">ThrottlingException(String)</a></span> - Constructor for exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-java.lang.String-">ThrottlingException(ThrottlingException.Type, long, String)</a></span> - Constructor for exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a> - Enum in <a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle"><span class="typeNameLink">ThroughputController</span></a> - Interface in <a href="org/apache/hadoop/hbase/regionserver/throttle/package-summary.html">org.apache.hadoop.hbase.regionserver.throttle</a></dt>
 <dd>
 <div class="block">A utility that constrains the total throughput of one or more simultaneous flows by
@@ -111103,24 +111141,52 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/WALSplitter.PipelineController.html#thrown">thrown</a></span> - Variable in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/WALSplitter.PipelineController.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.PipelineController</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-">throwThrottlingException(RpcThrottlingException.Type, long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-">throwThrottlingException(ThrottlingException.Type, long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HBaseAdmin.ProcedureFuture.WaitForStateCallable.html#throwTimeoutException-long-">throwTimeoutException(long)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HBaseAdmin.ProcedureFuture.WaitForStateCallable.html" title="interface in org.apache.hadoop.hbase.client">HBaseAdmin.ProcedureFuture.WaitForStateCallable</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HBaseAdmin.TableFuture.TableWaitForStateCallable.html#throwTimeoutException-long-">throwTimeoutException(long)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HBaseAdmin.TableFuture.TableWaitForStateCallable.html" title="class in org.apache.hadoop.hbase.client">HBaseAdmin.TableFuture.TableWaitForStateCallable</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandlerImpl.html#ti">ti</a></span> - Variable in class org.apache.hadoop.hbase.util.hbck.<a href="org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandlerImpl.html" title="class in org.apache.hadoop.hbase.util.hbck">TableIntegrityErrorHandlerImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/compactions/CurrentHourProvider.html#tick">tick</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.compactions.<a href="org/apache/hadoop/hbase/regionserver/compactions/CurrentHourProvider.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CurrentHourProvider</a></dt>
@@ -111168,8 +111234,12 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ConnectionCache.ConnectionInfo.html#timedOut-int-">timedOut(int)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ConnectionCache.ConnectionInfo.html" title="class in org.apache.hadoop.hbase.util">ConnectionCache.ConnectionInfo</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#timeFromString-java.lang.String-">timeFromString(String)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#timeFromString-java.lang.String-">timeFromString(String)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#timeFromString-java.lang.String-">timeFromString(String)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/metrics/OperationMetrics.html#timeHisto">timeHisto</a></span> - Variable in class org.apache.hadoop.hbase.metrics.<a href="org/apache/hadoop/hbase/metrics/OperationMetrics.html" title="class in org.apache.hadoop.hbase.metrics">OperationMetrics</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/IncrementingEnvironmentEdge.html#timeIncrement">timeIncrement</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/IncrementingEnvironmentEdge.html" title="class in org.apache.hadoop.hbase.util">IncrementingEnvironmentEdge</a></dt>
@@ -114111,10 +114181,18 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/monitoring/TaskMonitor.TaskFilter.TaskType.html#type">type</a></span> - Variable in enum org.apache.hadoop.hbase.monitoring.<a href="org/apache/hadoop/hbase/monitoring/TaskMonitor.TaskFilter.TaskType.html" title="enum in org.apache.hadoop.hbase.monitoring">TaskMonitor.TaskFilter.TaskType</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#type">type</a></span> - Variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#type">type</a></span> - Variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#Type--">Type()</a></span> - Constructor for enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#Type--">Type()</a></span> - Constructor for enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#type">type</a></span> - Variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#Type--">Type()</a></span> - Constructor for enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html#Type--">Type()</a></span> - Constructor for enum org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver">TimeRangeTracker.Type</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#type">type</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html" title="class in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck</a></dt>
@@ -117213,6 +117291,10 @@ service.</div>
 <dd>
 <div class="block">Returns the enum constant of this type with the specified name.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a></dt>
 <dd>
 <div class="block">Returns the enum constant of this type with the specified name.</div>
@@ -117223,6 +117305,7 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></dt>
 <dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Returns the enum constant of this type with the specified name.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/BloomType.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver">BloomType</a></dt>
@@ -117961,6 +118044,11 @@ the order they are declared.</div>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#values--">values()</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html#values--">values()</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a></dt>
 <dd>
 <div class="block">Returns an array containing the constants of this enum type, in
@@ -117973,6 +118061,7 @@ the order they are declared.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#values--">values()</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></dt>
 <dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.</div>
 </dd>
@@ -118922,8 +119011,12 @@ the order they are declared.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RateLimiter.html#waitInterval-long-">waitInterval(long)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RateLimiter.html" title="class in org.apache.hadoop.hbase.quotas">RateLimiter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#waitInterval">waitInterval</a></span> - Variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#waitInterval">waitInterval</a></span> - Variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#waitInterval">waitInterval</a></span> - Variable in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#waitInterval">waitInterval</a></span> - Variable in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#waitMetaInitialized-org.apache.hadoop.hbase.procedure2.Procedure-">waitMetaInitialized(Procedure)</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/HBaseIOException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/HBaseIOException.html b/devapidocs/org/apache/hadoop/hbase/HBaseIOException.html
index f8c653a..9c768fc 100644
--- a/devapidocs/org/apache/hadoop/hbase/HBaseIOException.html
+++ b/devapidocs/org/apache/hadoop/hbase/HBaseIOException.html
@@ -122,7 +122,7 @@
 </dl>
 <dl>
 <dt>Direct Known Subclasses:</dt>
-<dd><a href="../../../../org/apache/hadoop/hbase/backup/impl/BackupException.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupException</a>, <a href="../../../../org/apache/hadoop/hbase/procedure2/BadProcedureException.html" title="class in org.apache.hadoop.hbase.procedure2">BadProcedureException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CallCancelledException.html" title="class in org.apache.hadoop.hbase.ipc">CallCancelledException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CallTimeoutException.html" title="class in org.apache.hadoop.hbase.ipc">CallTimeoutException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CellScannerButNoCodecException.html" title="class in org.apache.hadoop.hbase.ipc">CellScannerButNoCodecException</a>, <a href="../../../../org/apache/hadoop/hbase/master/ClusterSchemaException.html" title="class in org.apache.hadoop.hbase.master">ClusterSchemaException</a>, <a href="../../../../org/apache/hadoop/hbase/codec/Code
 cException.html" title="class in org.apache.hadoop.hbase.codec">CodecException</a>, <a href="../../../../org/apache/hadoop/hbase/procedure2/store/wal/CorruptedWALProcedureStoreException.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">CorruptedWALProcedureStoreException</a>, <a href="../../../../org/apache/hadoop/hbase/regionserver/wal/DamagedWALException.html" title="class in org.apache.hadoop.hbase.regionserver.wal">DamagedWALException</a>, <a href="../../../../org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a>, <a href="../../../../org/apache/hadoop/hbase/master/assignment/FailedRemoteDispatchException.html" title="class in org.apache.hadoop.hbase.master.assignment">FailedRemoteDispatchException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/FailedServerException.html" title="class in org.apache.hadoop.hbase.ipc">FailedServerException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc
 /FallbackDisallowedException.html" title="class in org.apache.hadoop.hbase.ipc">FallbackDisallowedException</a>, <a href="../../../../org/apache/hadoop/hbase/util/LeaseNotRecoveredException.html" title="class in org.apache.hadoop.hbase.util">LeaseNotRecoveredException</a>, <a href="../../../../org/apache/hadoop/hbase/MasterNotRunningException.html" title="class in org.apache.hadoop.hbase">MasterNotRunningException</a>, <a href="../../../../org/apache/hadoop/hbase/master/NoSuchProcedureException.html" title="class in org.apache.hadoop.hbase.master">NoSuchProcedureException</a>, <a href="../../../../org/apache/hadoop/hbase/PleaseHoldException.html" title="class in org.apache.hadoop.hbase">PleaseHoldException</a>, <a href="../../../../org/apache/hadoop/hbase/RegionException.html" title="class in org.apache.hadoop.hbase">RegionException</a>, <a href="../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashException.html" title="class in org.apache.hadoop.hbase.master.procedure">
 ServerCrashException</a>, <a href="../../../../org/apache/hadoop/hbase/ServiceNotRunningException.html" title="class in org.apache.hadoop.hbase">ServiceNotRunningException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/StoppedRpcClientException.html" title="class in org.apache.hadoop.hbase.ipc">StoppedRpcClientException</a>, <a href="../../../../org/apache/hadoop/hbase/TableInfoMissingException.html" title="class in org.apache.hadoop.hbase">TableInfoMissingException</a>, <a href="../../../../org/apache/hadoop/hbase/exceptions/UnexpectedStateException.html" title="class in org.apache.hadoop.hbase.exceptions">UnexpectedStateException</a>, <a href="../../../../org/apache/hadoop/hbase/client/WrongRowIOException.html" title="class in org.apache.hadoop.hbase.client">WrongRowIOException</a></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/backup/impl/BackupException.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupException</a>, <a href="../../../../org/apache/hadoop/hbase/procedure2/BadProcedureException.html" title="class in org.apache.hadoop.hbase.procedure2">BadProcedureException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CallCancelledException.html" title="class in org.apache.hadoop.hbase.ipc">CallCancelledException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CallTimeoutException.html" title="class in org.apache.hadoop.hbase.ipc">CallTimeoutException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CellScannerButNoCodecException.html" title="class in org.apache.hadoop.hbase.ipc">CellScannerButNoCodecException</a>, <a href="../../../../org/apache/hadoop/hbase/master/ClusterSchemaException.html" title="class in org.apache.hadoop.hbase.master">ClusterSchemaException</a>, <a href="../../../../org/apache/hadoop/hbase/codec/Code
 cException.html" title="class in org.apache.hadoop.hbase.codec">CodecException</a>, <a href="../../../../org/apache/hadoop/hbase/procedure2/store/wal/CorruptedWALProcedureStoreException.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">CorruptedWALProcedureStoreException</a>, <a href="../../../../org/apache/hadoop/hbase/regionserver/wal/DamagedWALException.html" title="class in org.apache.hadoop.hbase.regionserver.wal">DamagedWALException</a>, <a href="../../../../org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a>, <a href="../../../../org/apache/hadoop/hbase/master/assignment/FailedRemoteDispatchException.html" title="class in org.apache.hadoop.hbase.master.assignment">FailedRemoteDispatchException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/FailedServerException.html" title="class in org.apache.hadoop.hbase.ipc">FailedServerException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc
 /FallbackDisallowedException.html" title="class in org.apache.hadoop.hbase.ipc">FallbackDisallowedException</a>, <a href="../../../../org/apache/hadoop/hbase/util/LeaseNotRecoveredException.html" title="class in org.apache.hadoop.hbase.util">LeaseNotRecoveredException</a>, <a href="../../../../org/apache/hadoop/hbase/MasterNotRunningException.html" title="class in org.apache.hadoop.hbase">MasterNotRunningException</a>, <a href="../../../../org/apache/hadoop/hbase/master/NoSuchProcedureException.html" title="class in org.apache.hadoop.hbase.master">NoSuchProcedureException</a>, <a href="../../../../org/apache/hadoop/hbase/PleaseHoldException.html" title="class in org.apache.hadoop.hbase">PleaseHoldException</a>, <a href="../../../../org/apache/hadoop/hbase/RegionException.html" title="class in org.apache.hadoop.hbase">RegionException</a>, <a href="../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingExcep
 tion</a>, <a href="../../../../org/apache/hadoop/hbase/master/procedure/ServerCrashException.html" title="class in org.apache.hadoop.hbase.master.procedure">ServerCrashException</a>, <a href="../../../../org/apache/hadoop/hbase/ServiceNotRunningException.html" title="class in org.apache.hadoop.hbase">ServiceNotRunningException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/StoppedRpcClientException.html" title="class in org.apache.hadoop.hbase.ipc">StoppedRpcClientException</a>, <a href="../../../../org/apache/hadoop/hbase/TableInfoMissingException.html" title="class in org.apache.hadoop.hbase">TableInfoMissingException</a>, <a href="../../../../org/apache/hadoop/hbase/exceptions/UnexpectedStateException.html" title="class in org.apache.hadoop.hbase.exceptions">UnexpectedStateException</a>, <a href="../../../../org/apache/hadoop/hbase/client/WrongRowIOException.html" title="class in org.apache.hadoop.hbase.client">WrongRowIOException</a></dd>
 </dl>
 <hr>
 <br>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index fa84ec0..f2790ae 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -167,10 +167,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html b/devapidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html
index 87f7eed..71f5796 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html
@@ -626,7 +626,9 @@
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></span></code>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
 </td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html b/devapidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html
index 313a472..0253cde 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html
@@ -1045,14 +1045,22 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></span></code>
+<div class="block">Describe the throttling result.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas">SpaceLimitingException</a></span></code>
 <div class="block">An Exception that is thrown when a space quota is in violation.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></span></code>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
 </td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
index 56eace7..39ca705 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -551,23 +551,23 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html b/devapidocs/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html
index 973c23b..116b0a8 100644
--- a/devapidocs/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html
+++ b/devapidocs/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html
@@ -158,7 +158,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
  - nested exceptions
 
  Looks for: RegionMovedException / RegionOpeningException / RegionTooBusyException /
-            ThrottlingException</div>
+            RpcThrottlingException</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
@@ -265,7 +265,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
  - nested exceptions
 
  Looks for: RegionMovedException / RegionOpeningException / RegionTooBusyException /
-            ThrottlingException</div>
+            RpcThrottlingException</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>null if we didn't find the exception, the exception otherwise.</dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
index 12eb66d..1ee8f20 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -183,14 +183,14 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index fea7a14..90b418b 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -273,12 +273,12 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
index 6a2998c..1f90dde 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -350,8 +350,8 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
index bd6fd7e..dfed8e7 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -294,9 +294,9 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableSplit.Version</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
index 499b00f..7b4b20d 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -347,10 +347,10 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
index 2d4a29c..0fa081d 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -208,9 +208,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/package-tree.html b/devapidocs/org/apache/hadoop/hbase/package-tree.html
index 9393be0..8a494b9 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -441,19 +441,19 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 190aee8..79bccf0 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -212,11 +212,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html b/devapidocs/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
index b9782fd..ec24917 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
@@ -391,7 +391,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota
 <pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html#line.61">checkQuota</a>(int&nbsp;numWrites,
                        int&nbsp;numReads,
                        int&nbsp;numScans)
-                throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+                throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html#checkQuota-int-int-int-">OperationQuota</a></code></span></div>
 <div class="block">Checks if it is possible to execute the specified operation.
  The quota will be estimated based on the number of operations to perform
@@ -404,7 +404,8 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota
 <dd><code>numReads</code> - number of small-read operation that will be performed</dd>
 <dd><code>numScans</code> - number of long-read operation that will be performed</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code> - if the operation cannot be performed</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - if the operation cannot be performed because
+   RPC quota is exceeded.</dd>
 </dl>
 </li>
 </ul>


[09/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html
index bee8222..7a938de 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.html
@@ -72,7 +72,7 @@
 <span class="sourceLineNo">064</span>/**<a name="line.64"></a>
 <span class="sourceLineNo">065</span> * Tests ReplicationSource and ReplicationEndpoint interactions<a name="line.65"></a>
 <span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@Category({ReplicationTests.class, MediumTests.class})<a name="line.67"></a>
+<span class="sourceLineNo">067</span>@Category({ ReplicationTests.class, MediumTests.class })<a name="line.67"></a>
 <span class="sourceLineNo">068</span>public class TestReplicationEndpoint extends TestReplicationBase {<a name="line.68"></a>
 <span class="sourceLineNo">069</span><a name="line.69"></a>
 <span class="sourceLineNo">070</span>  @ClassRule<a name="line.70"></a>
@@ -86,317 +86,317 @@
 <span class="sourceLineNo">078</span>  @BeforeClass<a name="line.78"></a>
 <span class="sourceLineNo">079</span>  public static void setUpBeforeClass() throws Exception {<a name="line.79"></a>
 <span class="sourceLineNo">080</span>    TestReplicationBase.setUpBeforeClass();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    admin.removePeer("2");<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  @AfterClass<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  public static void tearDownAfterClass() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    TestReplicationBase.tearDownAfterClass();<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    // check stop is called<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() &gt; 0);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  }<a name="line.90"></a>
-<span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>  @Before<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  public void setup() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    ReplicationEndpointForTest.contructedCount.set(0);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    ReplicationEndpointForTest.startedCount.set(0);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    ReplicationEndpointForTest.replicateCount.set(0);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    ReplicationEndpointForTest.lastEntries = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    final List&lt;RegionServerThread&gt; rsThreads =<a name="line.99"></a>
-<span class="sourceLineNo">100</span>        utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    for (RegionServerThread rs : rsThreads) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    // Wait for  all log roll to finish<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    utility1.waitFor(3000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      @Override<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      public boolean evaluate() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>        for (RegionServerThread rs : rsThreads) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span>            return false;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>          }<a name="line.111"></a>
-<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>        return true;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>      @Override<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      public String explainFailure() throws Exception {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        List&lt;String&gt; logRollInProgressRsList = new ArrayList&lt;&gt;();<a name="line.118"></a>
-<span class="sourceLineNo">119</span>        for (RegionServerThread rs : rsThreads) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>            logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.121"></a>
-<span class="sourceLineNo">122</span>          }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>        }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>        return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      }<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    });<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>  @Test<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  public void testCustomReplicationEndpoint() throws Exception {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    // test installing a custom replication endpoint other than the default one.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    admin.addPeer("testCustomReplicationEndpoint",<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.133"></a>
-<span class="sourceLineNo">134</span>            .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    // check whether the class has been constructed and started<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      public boolean evaluate() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        return ReplicationEndpointForTest.contructedCount.get() &gt;= numRegionServers;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      }<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    });<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      @Override<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      public boolean evaluate() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>        return ReplicationEndpointForTest.startedCount.get() &gt;= numRegionServers;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      }<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    });<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>    // now replicate some data.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    doPut(Bytes.toBytes("row42"));<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      public boolean evaluate() throws Exception {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      }<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    });<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>    doAssert(Bytes.toBytes("row42"));<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>    admin.removePeer("testCustomReplicationEndpoint");<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>  @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    int peerCount = admin.getPeersCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    admin.addPeer(id,<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.175"></a>
-<span class="sourceLineNo">176</span>        .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    // debug.  Peer needs to be up for the edit to make it across. This wait on<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    // peer count seems to be a hack that has us not progress till peer is up.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    if (admin.getPeersCount() &lt;= peerCount) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      Threads.sleep(100);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    // now replicate some data<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    doPut(row);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      public boolean evaluate() throws Exception {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        // only send over one edit.<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        LOG.info("count=" + count);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>        return ReplicationEndpointReturningFalse.replicated.get();<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    });<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      throw ReplicationEndpointReturningFalse.ex.get();<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>    admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.201"></a>
-<span class="sourceLineNo">202</span>  }<a name="line.202"></a>
-<span class="sourceLineNo">203</span><a name="line.203"></a>
-<span class="sourceLineNo">204</span>  @Test<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  public void testInterClusterReplication() throws Exception {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    final String id = "testInterClusterReplication";<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>    List&lt;HRegion&gt; regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    int totEdits = 0;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>    // Make sure edits are spread across regions because we do region based batching<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    // before shipping edits.<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    for(HRegion region: regions) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      RegionInfo hri = region.getRegionInfo();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      byte[] row = hri.getStartKey();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      for (int i = 0; i &lt; 100; i++) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        if (row.length &gt; 0) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>          Put put = new Put(row);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          put.addColumn(famName, row, row);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          region.put(put);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>          totEdits++;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        }<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      }<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>    admin.addPeer(id,<a name="line.226"></a>
-<span class="sourceLineNo">227</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.227"></a>
-<span class="sourceLineNo">228</span>            .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        null);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>    final int numEdits = totEdits;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      public boolean evaluate() throws Exception {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>      @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      public String explainFailure() throws Exception {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.240"></a>
-<span class="sourceLineNo">241</span>            + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>        return failure;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      }<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    });<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>    admin.removePeer("testInterClusterReplication");<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    utility1.deleteTableData(tableName);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  @Test<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.252"></a>
-<span class="sourceLineNo">253</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    //test that we can create mutliple WALFilters reflectively<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        EverythingPassesWALEntryFilter.class.getName() +<a name="line.256"></a>
-<span class="sourceLineNo">257</span>            "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    // now replicate some data.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      doPut(connection, Bytes.toBytes("row1"));<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      doPut(connection, row);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      doPut(connection, Bytes.toBytes("row2"));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      public boolean evaluate() throws Exception {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    });<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>    Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    //make sure our reflectively created filter is in the filter chain<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span>  @Test (expected=IOException.class)<a name="line.279"></a>
-<span class="sourceLineNo">280</span>  public void testWALEntryFilterAddValidation() throws Exception {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    //test that we can create mutliple WALFilters reflectively<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        "IAmNotARealWalEntryFilter");<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  }<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span>  @Test (expected=IOException.class)<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.291"></a>
-<span class="sourceLineNo">292</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    //test that we can create mutliple WALFilters reflectively<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.294"></a>
-<span class="sourceLineNo">295</span>        "IAmNotARealWalEntryFilter");<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>  }<a name="line.297"></a>
+<span class="sourceLineNo">081</span>    numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  @AfterClass<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  public static void tearDownAfterClass() throws Exception {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    TestReplicationBase.tearDownAfterClass();<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    // check stop is called<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() &gt; 0);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>  @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  public void setup() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    ReplicationEndpointForTest.contructedCount.set(0);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    ReplicationEndpointForTest.startedCount.set(0);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    ReplicationEndpointForTest.replicateCount.set(0);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    ReplicationEndpointForTest.lastEntries = null;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    final List&lt;RegionServerThread&gt; rsThreads =<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    for (RegionServerThread rs : rsThreads) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    // Wait for  all log roll to finish<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    utility1.waitFor(3000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      public boolean evaluate() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        for (RegionServerThread rs : rsThreads) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>            return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>          }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        return true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>      @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      public String explainFailure() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        List&lt;String&gt; logRollInProgressRsList = new ArrayList&lt;&gt;();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        for (RegionServerThread rs : rsThreads) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>            logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.120"></a>
+<span class="sourceLineNo">121</span>          }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    });<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>  @Test<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  public void testCustomReplicationEndpoint() throws Exception {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // test installing a custom replication endpoint other than the default one.<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    admin.addPeer("testCustomReplicationEndpoint",<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.132"></a>
+<span class="sourceLineNo">133</span>            .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>    // check whether the class has been constructed and started<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      public boolean evaluate() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        return ReplicationEndpointForTest.contructedCount.get() &gt;= numRegionServers;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    });<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      public boolean evaluate() throws Exception {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        return ReplicationEndpointForTest.startedCount.get() &gt;= numRegionServers;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    });<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    // now replicate some data.<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    doPut(Bytes.toBytes("row42"));<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      public boolean evaluate() throws Exception {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    });<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>    doAssert(Bytes.toBytes("row42"));<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>    admin.removePeer("testCustomReplicationEndpoint");<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>  @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    int peerCount = admin.getPeersCount();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    admin.addPeer(id,<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    // debug.  Peer needs to be up for the edit to make it across. This wait on<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    // peer count seems to be a hack that has us not progress till peer is up.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    if (admin.getPeersCount() &lt;= peerCount) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      Threads.sleep(100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    // now replicate some data<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    doPut(row);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      public boolean evaluate() throws Exception {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        // only send over one edit.<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        LOG.info("count=" + count);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        return ReplicationEndpointReturningFalse.replicated.get();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    });<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      throw ReplicationEndpointReturningFalse.ex.get();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    }<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>    admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  public void testInterClusterReplication() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    final String id = "testInterClusterReplication";<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>    List&lt;HRegion&gt; regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    int totEdits = 0;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>    // Make sure edits are spread across regions because we do region based batching<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    // before shipping edits.<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    for(HRegion region: regions) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      RegionInfo hri = region.getRegionInfo();<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      byte[] row = hri.getStartKey();<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      for (int i = 0; i &lt; 100; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        if (row.length &gt; 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          Put put = new Put(row);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>          put.addColumn(famName, row, row);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          region.put(put);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>          totEdits++;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>    admin.addPeer(id,<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.226"></a>
+<span class="sourceLineNo">227</span>            .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        null);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>    final int numEdits = totEdits;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      public boolean evaluate() throws Exception {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>      @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      public String explainFailure() throws Exception {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.239"></a>
+<span class="sourceLineNo">240</span>            + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        return failure;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    });<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>    admin.removePeer("testInterClusterReplication");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    utility1.deleteTableData(tableName);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>  @Test<a name="line.249"></a>
+<span class="sourceLineNo">250</span>  public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    //test that we can create mutliple WALFilters reflectively<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        EverythingPassesWALEntryFilter.class.getName() +<a name="line.255"></a>
+<span class="sourceLineNo">256</span>            "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    // now replicate some data.<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      doPut(connection, Bytes.toBytes("row1"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      doPut(connection, row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      doPut(connection, Bytes.toBytes("row2"));<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      public boolean evaluate() throws Exception {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      }<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    });<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span>    Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    //make sure our reflectively created filter is in the filter chain<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>  @Test (expected=IOException.class)<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  public void testWALEntryFilterAddValidation() throws Exception {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    //test that we can create mutliple WALFilters reflectively<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        "IAmNotARealWalEntryFilter");<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>  @Test (expected=IOException.class)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>  public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    //test that we can create mutliple WALFilters reflectively<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        "IAmNotARealWalEntryFilter");<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>  }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
 <span class="sourceLineNo">298</span><a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>  @Test<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  public void testMetricsSourceBaseSourcePassthrough(){<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    /*<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    allows for custom JMX metrics.<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    the two layers of wrapping to the actual BaseSource.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    */<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    String id = "id";<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>    MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    String gaugeName = "gauge";<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    String singleGaugeName = "source.id." + gaugeName;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    String globalGaugeName = "source." + gaugeName;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    long delta = 1;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    String counterName = "counter";<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    String singleCounterName = "source.id." + counterName;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    String globalCounterName = "source." + counterName;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    long count = 2;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    source.decGauge(gaugeName, delta);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    source.getMetricsContext();<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    source.getMetricsDescription();<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    source.getMetricsJmxContext();<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    source.getMetricsName();<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    source.incCounters(counterName, count);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    source.incGauge(gaugeName, delta);<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    source.init();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    source.removeMetric(gaugeName);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    source.setGauge(gaugeName, delta);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    source.updateHistogram(counterName, count);<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    verify(globalRms).getMetricsContext();<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    verify(globalRms).getMetricsJmxContext();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    verify(globalRms).getMetricsName();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    verify(singleRms).incCounters(singleCounterName, count);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    verify(globalRms).incCounters(globalCounterName, count);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    verify(globalRms).init();<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    verify(singleRms).removeMetric(singleGaugeName);<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    verify(globalRms).removeMetric(globalGaugeName);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    verify(globalRms).updateHistogram(globalCounterName, count);<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>  private void doPut(byte[] row) throws IOException {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      doPut(connection, row);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>  private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    try (Table t = connection.getTable(tableName)) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      Put put = new Put(row);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      put.addColumn(famName, row, row);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      t.put(put);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>  private static void doAssert(byte[] row) throws Exception {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      return; // first call<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    List&lt;Cell&gt; cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    Assert.assertEquals(1, cells.size());<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      cells.get(0).getRowLength(), row, 0, row.length));<a name="line.380"></a>
-<span class="sourceLineNo">381</span>  }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span>  public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    static UUID uuid = UUID.randomUUID();<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    static AtomicInteger contructedCount = new AtomicInteger();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    static AtomicInteger startedCount = new AtomicInteger();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    static volatile List&lt;Entry&gt; lastEntries = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>    public ReplicationEndpointForTest() {<a name="line.391"></a>
+<span class="sourceLineNo">299</span>  @Test<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  public void testMetricsSourceBaseSourcePassthrough(){<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    /*<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    allows for custom JMX metrics.<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    the two layers of wrapping to the actual BaseSource.<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    String id = "id";<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>    MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    String gaugeName = "gauge";<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    String singleGaugeName = "source.id." + gaugeName;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    String globalGaugeName = "source." + gaugeName;<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    long delta = 1;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    String counterName = "counter";<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    String singleCounterName = "source.id." + counterName;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    String globalCounterName = "source." + counterName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    long count = 2;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    source.decGauge(gaugeName, delta);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    source.getMetricsContext();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    source.getMetricsDescription();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    source.getMetricsJmxContext();<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    source.getMetricsName();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    source.incCounters(counterName, count);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    source.incGauge(gaugeName, delta);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    source.init();<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    source.removeMetric(gaugeName);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    source.setGauge(gaugeName, delta);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    source.updateHistogram(counterName, count);<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>    verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    verify(globalRms).getMetricsContext();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    verify(globalRms).getMetricsJmxContext();<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    verify(globalRms).getMetricsName();<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    verify(singleRms).incCounters(singleCounterName, count);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    verify(globalRms).incCounters(globalCounterName, count);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    verify(globalRms).init();<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    verify(singleRms).removeMetric(singleGaugeName);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    verify(globalRms).removeMetric(globalGaugeName);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    verify(globalRms).updateHistogram(globalCounterName, count);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>  private void doPut(byte[] row) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      doPut(connection, row);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>  private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    try (Table t = connection.getTable(tableName)) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      Put put = new Put(row);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      put.addColumn(famName, row, row);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      t.put(put);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>  private static void doAssert(byte[] row) throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      return; // first call<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    List&lt;Cell&gt; cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    Assert.assertEquals(1, cells.size());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      cells.get(0).getRowLength(), row, 0, row.length));<a name="line.379"></a>
+<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>  public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    static UUID uuid = UUID.randomUUID();<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    static AtomicInteger contructedCount = new AtomicInteger();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    static AtomicInteger startedCount = new AtomicInteger();<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    static volatile List&lt;Entry&gt; lastEntries = null;<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>    public ReplicationEndpointForTest() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      replicateCount.set(0);<a name="line.391"></a>
 <span class="sourceLineNo">392</span>      contructedCount.incrementAndGet();<a name="line.392"></a>
 <span class="sourceLineNo">393</span>    }<a name="line.393"></a>
 <span class="sourceLineNo">394</span><a name="line.394"></a>
@@ -441,127 +441,131 @@
 <span class="sourceLineNo">433</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.433"></a>
 <span class="sourceLineNo">434</span>    static boolean failedOnce;<a name="line.434"></a>
 <span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      boolean success = super.replicate(replicateContext);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      if (success) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        replicateCount.addAndGet(replicateContext.entries.size());<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      }<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      return success;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>    @Override<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    protected Replicator createReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      // Fail only once, we don't want to slow down the test.<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      if (failedOnce) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>        return new DummyReplicator(entries, ordinal);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      } else {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>        failedOnce = true;<a name="line.451"></a>
-<span class="sourceLineNo">452</span>        return new FailingDummyReplicator(entries, ordinal);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
-<span class="sourceLineNo">455</span><a name="line.455"></a>
-<span class="sourceLineNo">456</span>    protected class DummyReplicator extends Replicator {<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>      private int ordinal;<a name="line.458"></a>
+<span class="sourceLineNo">436</span>    public InterClusterReplicationEndpointForTest() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>      replicateCount.set(0);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>    @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      boolean success = super.replicate(replicateContext);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      if (success) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        replicateCount.addAndGet(replicateContext.entries.size());<a name="line.444"></a>
+<span class="sourceLineNo">445</span>      }<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      return success;<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span>    @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    protected Replicator createReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      // Fail only once, we don't want to slow down the test.<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      if (failedOnce) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        return new DummyReplicator(entries, ordinal);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        failedOnce = true;<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        return new FailingDummyReplicator(entries, ordinal);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      }<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    }<a name="line.458"></a>
 <span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>      public DummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        super(entries, ordinal);<a name="line.461"></a>
-<span class="sourceLineNo">462</span>        this.ordinal = ordinal;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>      @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      public Integer call() throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        return ordinal;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      }<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    }<a name="line.469"></a>
-<span class="sourceLineNo">470</span><a name="line.470"></a>
-<span class="sourceLineNo">471</span>    protected class FailingDummyReplicator extends DummyReplicator {<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span>      public FailingDummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        super(entries, ordinal);<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
+<span class="sourceLineNo">460</span>    protected class DummyReplicator extends Replicator {<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>      private int ordinal;<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>      public DummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        super(entries, ordinal);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        this.ordinal = ordinal;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>      }<a name="line.467"></a>
+<span class="sourceLineNo">468</span><a name="line.468"></a>
+<span class="sourceLineNo">469</span>      @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      public Integer call() throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        return ordinal;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      }<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>    protected class FailingDummyReplicator extends DummyReplicator {<a name="line.475"></a>
 <span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>      @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      public Integer call() throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>        throw new IOException("Sample Exception: Failed to replicate.");<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      }<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>  public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    static int COUNT = 10;<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    @Override<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      try {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        // check row<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        doAssert(row);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      } catch (Exception e) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>        ex.set(e);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>      super.replicate(replicateContext);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>      replicated.set(replicateCount.get() &gt; COUNT); // first 10 times, we return false<a name="line.500"></a>
-<span class="sourceLineNo">501</span>      return replicated.get();<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    }<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span>  // return a WALEntry filter which only accepts "row", but not other rows<a name="line.505"></a>
-<span class="sourceLineNo">506</span>  public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.507"></a>
+<span class="sourceLineNo">477</span>      public FailingDummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        super(entries, ordinal);<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>      @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      public Integer call() throws IOException {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        throw new IOException("Sample Exception: Failed to replicate.");<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      }<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span>  public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    static int COUNT = 10;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>      try {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        // check row<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        doAssert(row);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>      } catch (Exception e) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        ex.set(e);<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      }<a name="line.499"></a>
+<span class="sourceLineNo">500</span><a name="line.500"></a>
+<span class="sourceLineNo">501</span>      super.replicate(replicateContext);<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>      replicated.set(replicateCount.get() &gt; COUNT); // first 10 times, we return false<a name="line.504"></a>
+<span class="sourceLineNo">505</span>      return replicated.get();<a name="line.505"></a>
+<span class="sourceLineNo">506</span>    }<a name="line.506"></a>
+<span class="sourceLineNo">507</span>  }<a name="line.507"></a>
 <span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span>    @Override<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      try {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        super.replicate(replicateContext);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>        doAssert(row);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      } catch (Exception e) {<a name="line.514"></a>
-<span class="sourceLineNo">515</span>        ex.set(e);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      }<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      return true;<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>    @Override<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    public WALEntryFilter getWALEntryfilter() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span>        public Entry filter(Entry entry) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>          ArrayList&lt;Cell&gt; cells = entry.getEdit().getCells();<a name="line.525"></a>
-<span class="sourceLineNo">526</span>          int size = cells.size();<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          for (int i = size-1; i &gt;= 0; i--) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>            Cell cell = cells.get(i);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>            if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.529"></a>
-<span class="sourceLineNo">530</span>              row, 0, row.length)) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span>              cells.remove(i);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>            }<a name="line.532"></a>
-<span class="sourceLineNo">533</span>          }<a name="line.533"></a>
-<span class="sourceLineNo">534</span>          return entry;<a name="line.534"></a>
-<span class="sourceLineNo">535</span>        }<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      });<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    }<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span>  public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    private static boolean passedEntry = false;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    public Entry filter(Entry entry) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>      passedEntry = true;<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      return entry;<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>    public static boolean hasPassedAnEntry(){<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      return passedEntry;<a name="line.549"></a>
+<span class="sourceLineNo">509</span>  // return a WALEntry filter which only accepts "row", but not other rows<a name="line.509"></a>
+<span class="sourceLineNo">510</span>  public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span>    @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      try {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        super.replicate(replicateContext);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        doAssert(row);<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      } catch (Exception e) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        ex.set(e);<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      }<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      return true;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>    }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span>    @Override<a name="line.524"></a>
+<span class="sourceLineNo">525</span>    public WALEntryFilter getWALEntryfilter() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public Entry filter(Entry entry) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>          ArrayList&lt;Cell&gt; cells = entry.getEdit().getCells();<a name="line.529"></a>
+<span class="sourceLineNo">530</span>          int size = cells.size();<a name="line.530"></a>
+<span class="sourceLineNo">531</span>          for (int i = size-1; i &gt;= 0; i--) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>            Cell cell = cells.get(i);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>            if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.533"></a>
+<span class="sourceLineNo">534</span>              row, 0, row.length)) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>              cells.remove(i);<a name="line.535"></a>
+<span class="sourceLineNo">536</span>            }<a name="line.536"></a>
+<span class="sourceLineNo">537</span>          }<a name="line.537"></a>
+<span class="sourceLineNo">538</span>          return entry;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        }<a name="line.539"></a>
+<span class="sourceLineNo">540</span>      });<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>  }<a name="line.542"></a>
+<span class="sourceLineNo">543</span><a name="line.543"></a>
+<span class="sourceLineNo">544</span>  public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.544"></a>
+<span class="sourceLineNo">545</span>    private static boolean passedEntry = false;<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    public Entry filter(Entry entry) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>      passedEntry = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      return entry;<a name="line.549"></a>
 <span class="sourceLineNo">550</span>    }<a name="line.550"></a>
-<span class="sourceLineNo">551</span>  }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span>  public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>    public static boolean hasPassedAnEntry(){<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      return passedEntry;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    }<a name="line.554"></a>
 <span class="sourceLineNo">555</span>  }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>}<a name="line.556"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span>  public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span>  }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>}<a name="line.560"></a>
 
 
 


[04/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html
index 5f0da23..6e967d8 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html
@@ -31,27 +31,23 @@
 <span class="sourceLineNo">023</span>import org.junit.ClassRule;<a name="line.23"></a>
 <span class="sourceLineNo">024</span>import org.junit.Test;<a name="line.24"></a>
 <span class="sourceLineNo">025</span>import org.junit.experimental.categories.Category;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.junit.runner.RunWith;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.junit.runners.Parameterized;<a name="line.27"></a>
-<span class="sourceLineNo">028</span><a name="line.28"></a>
-<span class="sourceLineNo">029</span>/**<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * Runs the TestReplicationKillRS test and selects the RS to kill in the master cluster<a name="line.30"></a>
-<span class="sourceLineNo">031</span> * Do not add other tests in this class.<a name="line.31"></a>
-<span class="sourceLineNo">032</span> */<a name="line.32"></a>
-<span class="sourceLineNo">033</span>@RunWith(Parameterized.class)<a name="line.33"></a>
-<span class="sourceLineNo">034</span>@Category({ReplicationTests.class, LargeTests.class})<a name="line.34"></a>
-<span class="sourceLineNo">035</span>public class TestReplicationKillMasterRS extends TestReplicationKillRS {<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>  @ClassRule<a name="line.37"></a>
-<span class="sourceLineNo">038</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.38"></a>
-<span class="sourceLineNo">039</span>      HBaseClassTestRule.forClass(TestReplicationKillMasterRS.class);<a name="line.39"></a>
-<span class="sourceLineNo">040</span><a name="line.40"></a>
-<span class="sourceLineNo">041</span>  @Test<a name="line.41"></a>
-<span class="sourceLineNo">042</span>  public void killOneMasterRS() throws Exception {<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    loadTableAndKillRS(utility1);<a name="line.43"></a>
-<span class="sourceLineNo">044</span>  }<a name="line.44"></a>
-<span class="sourceLineNo">045</span><a name="line.45"></a>
-<span class="sourceLineNo">046</span>}<a name="line.46"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Runs the TestReplicationKillRS test and selects the RS to kill in the master cluster<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * Do not add other tests in this class.<a name="line.29"></a>
+<span class="sourceLineNo">030</span> */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>@Category({ ReplicationTests.class, LargeTests.class })<a name="line.31"></a>
+<span class="sourceLineNo">032</span>public class TestReplicationKillMasterRS extends TestReplicationKillRS {<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>  @ClassRule<a name="line.34"></a>
+<span class="sourceLineNo">035</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.35"></a>
+<span class="sourceLineNo">036</span>      HBaseClassTestRule.forClass(TestReplicationKillMasterRS.class);<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>  @Test<a name="line.38"></a>
+<span class="sourceLineNo">039</span>  public void killOneMasterRS() throws Exception {<a name="line.39"></a>
+<span class="sourceLineNo">040</span>    loadTableAndKillRS(utility1);<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  }<a name="line.41"></a>
+<span class="sourceLineNo">042</span>}<a name="line.42"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html
index 537a4e1..a3c7e67 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html
@@ -37,7 +37,7 @@
 <span class="sourceLineNo">029</span> * Run the same test as TestReplicationKillMasterRS but with WAL compression enabled<a name="line.29"></a>
 <span class="sourceLineNo">030</span> * Do not add other tests in this class.<a name="line.30"></a>
 <span class="sourceLineNo">031</span> */<a name="line.31"></a>
-<span class="sourceLineNo">032</span>@Category({ReplicationTests.class, LargeTests.class})<a name="line.32"></a>
+<span class="sourceLineNo">032</span>@Category({ ReplicationTests.class, LargeTests.class })<a name="line.32"></a>
 <span class="sourceLineNo">033</span>public class TestReplicationKillMasterRSCompressed extends TestReplicationKillMasterRS {<a name="line.33"></a>
 <span class="sourceLineNo">034</span><a name="line.34"></a>
 <span class="sourceLineNo">035</span>  @ClassRule<a name="line.35"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html
new file mode 100644
index 0000000..5064352
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.replication;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.testclassification.ReplicationTests;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.junit.BeforeClass;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.junit.ClassRule;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.junit.Test;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.junit.experimental.categories.Category;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>@Category({ ReplicationTests.class, LargeTests.class })<a name="line.30"></a>
+<span class="sourceLineNo">031</span>public class TestReplicationKillMasterRSWithSeparateOldWALs extends TestReplicationKillRS {<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>  @ClassRule<a name="line.33"></a>
+<span class="sourceLineNo">034</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.34"></a>
+<span class="sourceLineNo">035</span>      HBaseClassTestRule.forClass(TestReplicationKillMasterRSWithSeparateOldWALs.class);<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>  @BeforeClass<a name="line.37"></a>
+<span class="sourceLineNo">038</span>  public static void setUpBeforeClass() throws Exception {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>    conf1.setBoolean(AbstractFSWALProvider.SEPARATE_OLDLOGDIR, true);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>    TestReplicationBase.setUpBeforeClass();<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  }<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>  @Test<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  public void killOneMasterRS() throws Exception {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    loadTableAndKillRS(utility1);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  }<a name="line.46"></a>
+<span class="sourceLineNo">047</span>}<a name="line.47"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html
index d65aa54..68865ce 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html
@@ -31,26 +31,23 @@
 <span class="sourceLineNo">023</span>import org.junit.ClassRule;<a name="line.23"></a>
 <span class="sourceLineNo">024</span>import org.junit.Test;<a name="line.24"></a>
 <span class="sourceLineNo">025</span>import org.junit.experimental.categories.Category;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.junit.runner.RunWith;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.junit.runners.Parameterized;<a name="line.27"></a>
-<span class="sourceLineNo">028</span><a name="line.28"></a>
-<span class="sourceLineNo">029</span>/**<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * Runs the TestReplicationKillRS test and selects the RS to kill in the slave cluster<a name="line.30"></a>
-<span class="sourceLineNo">031</span> * Do not add other tests in this class.<a name="line.31"></a>
-<span class="sourceLineNo">032</span> */<a name="line.32"></a>
-<span class="sourceLineNo">033</span>@RunWith(Parameterized.class)<a name="line.33"></a>
-<span class="sourceLineNo">034</span>@Category({ReplicationTests.class, LargeTests.class})<a name="line.34"></a>
-<span class="sourceLineNo">035</span>public class TestReplicationKillSlaveRS extends TestReplicationKillRS {<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>  @ClassRule<a name="line.37"></a>
-<span class="sourceLineNo">038</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.38"></a>
-<span class="sourceLineNo">039</span>      HBaseClassTestRule.forClass(TestReplicationKillSlaveRS.class);<a name="line.39"></a>
-<span class="sourceLineNo">040</span><a name="line.40"></a>
-<span class="sourceLineNo">041</span>  @Test<a name="line.41"></a>
-<span class="sourceLineNo">042</span>  public void killOneSlaveRS() throws Exception {<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    loadTableAndKillRS(utility2);<a name="line.43"></a>
-<span class="sourceLineNo">044</span>  }<a name="line.44"></a>
-<span class="sourceLineNo">045</span>}<a name="line.45"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Runs the TestReplicationKillRS test and selects the RS to kill in the slave cluster<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * Do not add other tests in this class.<a name="line.29"></a>
+<span class="sourceLineNo">030</span> */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>@Category({ ReplicationTests.class, LargeTests.class })<a name="line.31"></a>
+<span class="sourceLineNo">032</span>public class TestReplicationKillSlaveRS extends TestReplicationKillRS {<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>  @ClassRule<a name="line.34"></a>
+<span class="sourceLineNo">035</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.35"></a>
+<span class="sourceLineNo">036</span>      HBaseClassTestRule.forClass(TestReplicationKillSlaveRS.class);<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>  @Test<a name="line.38"></a>
+<span class="sourceLineNo">039</span>  public void killOneSlaveRS() throws Exception {<a name="line.39"></a>
+<span class="sourceLineNo">040</span>    loadTableAndKillRS(utility2);<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  }<a name="line.41"></a>
+<span class="sourceLineNo">042</span>}<a name="line.42"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html
new file mode 100644
index 0000000..23e218b
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.replication;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.testclassification.ReplicationTests;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.junit.BeforeClass;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.junit.ClassRule;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.junit.Test;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.junit.experimental.categories.Category;<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>@Category({ ReplicationTests.class, LargeTests.class })<a name="line.30"></a>
+<span class="sourceLineNo">031</span>public class TestReplicationKillSlaveRSWithSeparateOldWALs extends TestReplicationKillRS {<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>  @ClassRule<a name="line.33"></a>
+<span class="sourceLineNo">034</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.34"></a>
+<span class="sourceLineNo">035</span>      HBaseClassTestRule.forClass(TestReplicationKillSlaveRSWithSeparateOldWALs.class);<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>  @BeforeClass<a name="line.37"></a>
+<span class="sourceLineNo">038</span>  public static void setUpBeforeClass() throws Exception {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>    conf1.setBoolean(AbstractFSWALProvider.SEPARATE_OLDLOGDIR, true);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>    TestReplicationBase.setUpBeforeClass();<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  }<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>  @Test<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  public void killOneSlaveRS() throws Exception {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    loadTableAndKillRS(utility2);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  }<a name="line.46"></a>
+<span class="sourceLineNo">047</span>}<a name="line.47"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>


[15/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html
index 54be0f3..eb0b0ab 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html
@@ -32,298 +32,302 @@
 <span class="sourceLineNo">024</span><a name="line.24"></a>
 <span class="sourceLineNo">025</span>import java.io.IOException;<a name="line.25"></a>
 <span class="sourceLineNo">026</span>import java.util.ArrayList;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.util.Arrays;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.List;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.util.NavigableMap;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.TreeMap;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.conf.Configuration;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.HConstants;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.TableName;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.client.Delete;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.client.Get;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.client.Put;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.client.Result;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.client.Table;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.replication.ReplicationAdmin;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.util.JVMClusterUtil;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.zookeeper.ZKWatcher;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.junit.AfterClass;<a name="line.56"></a>
+<span class="sourceLineNo">027</span>import java.util.List;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.util.NavigableMap;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.util.TreeMap;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.conf.Configuration;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.HConstants;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.TableName;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.client.Delete;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.client.Get;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.client.Put;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.client.Result;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.client.Table;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.replication.ReplicationAdmin;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.util.JVMClusterUtil;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.zookeeper.ZKWatcher;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.junit.After;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.junit.AfterClass;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.junit.Before;<a name="line.56"></a>
 <span class="sourceLineNo">057</span>import org.junit.BeforeClass;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.junit.runners.Parameterized.Parameter;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.junit.runners.Parameterized.Parameters;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.slf4j.Logger;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.slf4j.LoggerFactory;<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>/**<a name="line.63"></a>
-<span class="sourceLineNo">064</span> * This class is only a base for other integration-level replication tests.<a name="line.64"></a>
-<span class="sourceLineNo">065</span> * Do not add tests here.<a name="line.65"></a>
-<span class="sourceLineNo">066</span> * TestReplicationSmallTests is where tests that don't require bring machines up/down should go<a name="line.66"></a>
-<span class="sourceLineNo">067</span> * All other tests should have their own classes and extend this one<a name="line.67"></a>
-<span class="sourceLineNo">068</span> */<a name="line.68"></a>
-<span class="sourceLineNo">069</span>public class TestReplicationBase {<a name="line.69"></a>
-<span class="sourceLineNo">070</span>/*<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  {<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    ((Log4JLogger) ReplicationSource.LOG).getLogger().setLevel(Level.ALL);<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  }*/<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>  private static final Logger LOG = LoggerFactory.getLogger(TestReplicationBase.class);<a name="line.75"></a>
+<span class="sourceLineNo">058</span>import org.slf4j.Logger;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.slf4j.LoggerFactory;<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>/**<a name="line.61"></a>
+<span class="sourceLineNo">062</span> * This class is only a base for other integration-level replication tests.<a name="line.62"></a>
+<span class="sourceLineNo">063</span> * Do not add tests here.<a name="line.63"></a>
+<span class="sourceLineNo">064</span> * TestReplicationSmallTests is where tests that don't require bring machines up/down should go<a name="line.64"></a>
+<span class="sourceLineNo">065</span> * All other tests should have their own classes and extend this one<a name="line.65"></a>
+<span class="sourceLineNo">066</span> */<a name="line.66"></a>
+<span class="sourceLineNo">067</span>public class TestReplicationBase {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  private static final Logger LOG = LoggerFactory.getLogger(TestReplicationBase.class);<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>  protected static Configuration conf1 = HBaseConfiguration.create();<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  protected static Configuration conf2;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  protected static Configuration CONF_WITH_LOCALFS;<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>  protected static ZKWatcher zkw1;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  protected static ZKWatcher zkw2;<a name="line.75"></a>
 <span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  protected static Configuration conf1 = HBaseConfiguration.create();<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  protected static Configuration conf2;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  protected static Configuration CONF_WITH_LOCALFS;<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span>  protected static ZKWatcher zkw1;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  protected static ZKWatcher zkw2;<a name="line.82"></a>
+<span class="sourceLineNo">077</span>  protected static ReplicationAdmin admin;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  protected static Admin hbaseAdmin;<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>  protected static Table htable1;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  protected static Table htable2;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  protected static NavigableMap&lt;byte[], Integer&gt; scopes;<a name="line.82"></a>
 <span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span>  protected static ReplicationAdmin admin;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  protected static Admin hbaseAdmin;<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  protected static Table htable1;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  protected static Table htable2;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  protected static NavigableMap&lt;byte[], Integer&gt; scopes;<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>  protected static HBaseTestingUtility utility1;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  protected static HBaseTestingUtility utility2;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  protected static final int NB_ROWS_IN_BATCH = 100;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  protected static final int NB_ROWS_IN_BIG_BATCH =<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      NB_ROWS_IN_BATCH * 10;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  protected static final long SLEEP_TIME = 500;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  protected static final int NB_RETRIES = 10;<a name="line.97"></a>
-<span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span>  protected static final TableName tableName = TableName.valueOf("test");<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  protected static final byte[] famName = Bytes.toBytes("f");<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  protected static final byte[] row = Bytes.toBytes("row");<a name="line.101"></a>
-<span class="sourceLineNo">102</span>  protected static final byte[] noRepfamName = Bytes.toBytes("norep");<a name="line.102"></a>
-<span class="sourceLineNo">103</span><a name="line.103"></a>
-<span class="sourceLineNo">104</span>  @Parameter<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  public static boolean seperateOldWALs;<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>  @Parameters<a name="line.107"></a>
-<span class="sourceLineNo">108</span>  public static List&lt;Boolean&gt; params() {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    return Arrays.asList(false, true);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>  }<a name="line.110"></a>
-<span class="sourceLineNo">111</span><a name="line.111"></a>
-<span class="sourceLineNo">112</span>  protected final void cleanUp() throws IOException, InterruptedException {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    // Starting and stopping replication can make us miss new logs,<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    // rolling like this makes sure the most recent one gets added to the queue<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    for (JVMClusterUtil.RegionServerThread r : utility1.getHBaseCluster()<a name="line.115"></a>
-<span class="sourceLineNo">116</span>        .getRegionServerThreads()) {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      utility1.getAdmin().rollWALWriter(r.getRegionServer().getServerName());<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    }<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    int rowCount = utility1.countRows(tableName);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    utility1.deleteTableData(tableName);<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    // truncating the table will send one Delete per row to the slave cluster<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    // in an async fashion, which is why we cannot just call deleteTableData on<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    // utility2 since late writes could make it to the slave in some way.<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    // Instead, we truncate the first table and wait for all the Deletes to<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    // make it to the slave.<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    Scan scan = new Scan();<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    int lastCount = 0;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      if (i == NB_RETRIES - 1) {<a name="line.129"></a>
-<span class="sourceLineNo">130</span>        fail("Waited too much time for truncate");<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      }<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      ResultScanner scanner = htable2.getScanner(scan);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      Result[] res = scanner.next(rowCount);<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      scanner.close();<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      if (res.length != 0) {<a name="line.135"></a>
-<span class="sourceLineNo">136</span>        if (res.length &lt; lastCount) {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>          i--; // Don't increment timeout if we make progress<a name="line.137"></a>
-<span class="sourceLineNo">138</span>        }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>        lastCount = res.length;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        LOG.info("Still got " + res.length + " rows");<a name="line.140"></a>
-<span class="sourceLineNo">141</span>        Thread.sleep(SLEEP_TIME);<a name="line.141"></a>
-<span class="sourceLineNo">142</span>      } else {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>        break;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      }<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span>  }<a name="line.146"></a>
-<span class="sourceLineNo">147</span><a name="line.147"></a>
-<span class="sourceLineNo">148</span>  protected static void waitForReplication(int expectedRows, int retries)<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      throws IOException, InterruptedException {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    Scan scan;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    for (int i = 0; i &lt; retries; i++) {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      scan = new Scan();<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      if (i== retries -1) {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>        fail("Waited too much time for normal batch replication");<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      }<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      ResultScanner scanner = htable2.getScanner(scan);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      Result[] res = scanner.next(expectedRows);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      scanner.close();<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      if (res.length != expectedRows) {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>        LOG.info("Only got " + res.length + " rows");<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        Thread.sleep(SLEEP_TIME);<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      } else {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>        break;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>      }<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    }<a name="line.165"></a>
+<span class="sourceLineNo">084</span>  protected static HBaseTestingUtility utility1;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  protected static HBaseTestingUtility utility2;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  protected static final int NB_ROWS_IN_BATCH = 100;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  protected static final int NB_ROWS_IN_BIG_BATCH =<a name="line.87"></a>
+<span class="sourceLineNo">088</span>      NB_ROWS_IN_BATCH * 10;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  protected static final long SLEEP_TIME = 500;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  protected static final int NB_RETRIES = 10;<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>  protected static final TableName tableName = TableName.valueOf("test");<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  protected static final byte[] famName = Bytes.toBytes("f");<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  protected static final byte[] row = Bytes.toBytes("row");<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  protected static final byte[] noRepfamName = Bytes.toBytes("norep");<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  protected static final String PEER_ID2 = "2";<a name="line.96"></a>
+<span class="sourceLineNo">097</span><a name="line.97"></a>
+<span class="sourceLineNo">098</span>  protected boolean isSerialPeer() {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    return false;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  }<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>  protected final void cleanUp() throws IOException, InterruptedException {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    // Starting and stopping replication can make us miss new logs,<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    // rolling like this makes sure the most recent one gets added to the queue<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    for (JVMClusterUtil.RegionServerThread r : utility1.getHBaseCluster()<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        .getRegionServerThreads()) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      utility1.getAdmin().rollWALWriter(r.getRegionServer().getServerName());<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    }<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    int rowCount = utility1.countRows(tableName);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    utility1.deleteTableData(tableName);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    // truncating the table will send one Delete per row to the slave cluster<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    // in an async fashion, which is why we cannot just call deleteTableData on<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    // utility2 since late writes could make it to the slave in some way.<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    // Instead, we truncate the first table and wait for all the Deletes to<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    // make it to the slave.<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    Scan scan = new Scan();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    int lastCount = 0;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      if (i == NB_RETRIES - 1) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        fail("Waited too much time for truncate");<a name="line.120"></a>
+<span class="sourceLineNo">121</span>      }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      ResultScanner scanner = htable2.getScanner(scan);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      Result[] res = scanner.next(rowCount);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      scanner.close();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      if (res.length != 0) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        if (res.length &lt; lastCount) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>          i--; // Don't increment timeout if we make progress<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        lastCount = res.length;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>        LOG.info("Still got " + res.length + " rows");<a name="line.130"></a>
+<span class="sourceLineNo">131</span>        Thread.sleep(SLEEP_TIME);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      } else {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        break;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      }<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>  }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>  protected static void waitForReplication(int expectedRows, int retries)<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      throws IOException, InterruptedException {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    Scan scan;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    for (int i = 0; i &lt; retries; i++) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      scan = new Scan();<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      if (i== retries -1) {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        fail("Waited too much time for normal batch replication");<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      }<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      ResultScanner scanner = htable2.getScanner(scan);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      Result[] res = scanner.next(expectedRows);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      scanner.close();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      if (res.length != expectedRows) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        LOG.info("Only got " + res.length + " rows");<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        Thread.sleep(SLEEP_TIME);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      } else {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        break;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  }<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span>  protected static void loadData(String prefix, byte[] row) throws IOException {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    List&lt;Put&gt; puts = new ArrayList&lt;&gt;(NB_ROWS_IN_BATCH);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH; i++) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      Put put = new Put(Bytes.toBytes(prefix + Integer.toString(i)));<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      put.addColumn(famName, row, row);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      puts.add(put);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    htable1.put(puts);<a name="line.165"></a>
 <span class="sourceLineNo">166</span>  }<a name="line.166"></a>
 <span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>  protected static void loadData(String prefix, byte[] row) throws IOException {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    List&lt;Put&gt; puts = new ArrayList&lt;&gt;(NB_ROWS_IN_BATCH);<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH; i++) {<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      Put put = new Put(Bytes.toBytes(prefix + Integer.toString(i)));<a name="line.171"></a>
-<span class="sourceLineNo">172</span>      put.addColumn(famName, row, row);<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      puts.add(put);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    htable1.put(puts);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>  }<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>  @BeforeClass<a name="line.178"></a>
-<span class="sourceLineNo">179</span>  public static void setUpBeforeClass() throws Exception {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    conf1.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/1");<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    // We don't want too many edits per batch sent to the ReplicationEndpoint to trigger<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    // sufficient number of events. But we don't want to go too low because<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    // HBaseInterClusterReplicationEndpoint partitions entries into batches and we want<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    // more than one batch sent to the peer cluster for better testing.<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    conf1.setInt("replication.source.size.capacity", 102400);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    conf1.setLong("replication.source.sleepforretries", 100);<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    conf1.setInt("hbase.regionserver.maxlogs", 10);<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    conf1.setLong("hbase.master.logcleaner.ttl", 10);<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    conf1.setInt("zookeeper.recovery.retry", 1);<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    conf1.setInt("zookeeper.recovery.retry.intervalmill", 10);<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    conf1.setLong(HConstants.THREAD_WAKE_FREQUENCY, 100);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    conf1.setInt("replication.stats.thread.period.seconds", 5);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    conf1.setBoolean("hbase.tests.use.shortcircuit.reads", false);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    conf1.setLong("replication.sleep.before.failover", 2000);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    conf1.setInt("replication.source.maxretriesmultiplier", 10);<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    conf1.setFloat("replication.source.ratio", 1.0f);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    conf1.setBoolean("replication.source.eof.autorecovery", true);<a name="line.197"></a>
+<span class="sourceLineNo">168</span>  @BeforeClass<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  public static void setUpBeforeClass() throws Exception {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    conf1.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/1");<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    // We don't want too many edits per batch sent to the ReplicationEndpoint to trigger<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    // sufficient number of events. But we don't want to go too low because<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    // HBaseInterClusterReplicationEndpoint partitions entries into batches and we want<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    // more than one batch sent to the peer cluster for better testing.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    conf1.setInt("replication.source.size.capacity", 102400);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    conf1.setLong("replication.source.sleepforretries", 100);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    conf1.setInt("hbase.regionserver.maxlogs", 10);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    conf1.setLong("hbase.master.logcleaner.ttl", 10);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    conf1.setInt("zookeeper.recovery.retry", 1);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    conf1.setInt("zookeeper.recovery.retry.intervalmill", 10);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    conf1.setLong(HConstants.THREAD_WAKE_FREQUENCY, 100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    conf1.setInt("replication.stats.thread.period.seconds", 5);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    conf1.setBoolean("hbase.tests.use.shortcircuit.reads", false);<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    conf1.setLong("replication.sleep.before.failover", 2000);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    conf1.setInt("replication.source.maxretriesmultiplier", 10);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    conf1.setFloat("replication.source.ratio", 1.0f);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    conf1.setBoolean("replication.source.eof.autorecovery", true);<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>    utility1 = new HBaseTestingUtility(conf1);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    utility1.startMiniZKCluster();<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    MiniZooKeeperCluster miniZK = utility1.getZkCluster();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    // Have to reget conf1 in case zk cluster location different<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    // than default<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    conf1 = utility1.getConfiguration();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    zkw1 = new ZKWatcher(conf1, "cluster1", null, true);<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    admin = new ReplicationAdmin(conf1);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    LOG.info("Setup first Zk");<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>    // Parameter config<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    conf1.setBoolean(AbstractFSWALProvider.SEPARATE_OLDLOGDIR, seperateOldWALs);<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>    utility1 = new HBaseTestingUtility(conf1);<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    utility1.startMiniZKCluster();<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    MiniZooKeeperCluster miniZK = utility1.getZkCluster();<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    // Have to reget conf1 in case zk cluster location different<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    // than default<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    conf1 = utility1.getConfiguration();<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    zkw1 = new ZKWatcher(conf1, "cluster1", null, true);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    admin = new ReplicationAdmin(conf1);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    LOG.info("Setup first Zk");<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>    // Base conf2 on conf1 so it gets the right zk cluster.<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    conf2 = HBaseConfiguration.create(conf1);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    conf2.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/2");<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    conf2.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 6);<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    conf2.setBoolean("hbase.tests.use.shortcircuit.reads", false);<a name="line.216"></a>
+<span class="sourceLineNo">199</span>    // Base conf2 on conf1 so it gets the right zk cluster.<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    conf2 = HBaseConfiguration.create(conf1);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    conf2.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/2");<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    conf2.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 6);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    conf2.setBoolean("hbase.tests.use.shortcircuit.reads", false);<a name="line.203"></a>
+<span class="sourceLineNo">204</span><a name="line.204"></a>
+<span class="sourceLineNo">205</span>    utility2 = new HBaseTestingUtility(conf2);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    utility2.setZkCluster(miniZK);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    zkw2 = new ZKWatcher(conf2, "cluster2", null, true);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    LOG.info("Setup second Zk");<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>    CONF_WITH_LOCALFS = HBaseConfiguration.create(conf1);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    utility1.startMiniCluster(2);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    // Have a bunch of slave servers, because inter-cluster shipping logic uses number of sinks<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    // as a component in deciding maximum number of parallel batches to send to the peer cluster.<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    utility2.startMiniCluster(4);<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>    hbaseAdmin = ConnectionFactory.createConnection(conf1).getAdmin();<a name="line.216"></a>
 <span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>    utility2 = new HBaseTestingUtility(conf2);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    utility2.setZkCluster(miniZK);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    zkw2 = new ZKWatcher(conf2, "cluster2", null, true);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    LOG.info("Setup second Zk");<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>    CONF_WITH_LOCALFS = HBaseConfiguration.create(conf1);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    utility1.startMiniCluster(2);<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    // Have a bunch of slave servers, because inter-cluster shipping logic uses number of sinks<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    // as a component in deciding maximum number of parallel batches to send to the peer cluster.<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    utility2.startMiniCluster(4);<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span>    ReplicationPeerConfig rpc =<a name="line.229"></a>
-<span class="sourceLineNo">230</span>        ReplicationPeerConfig.newBuilder().setClusterKey(utility2.getClusterKey()).build();<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    hbaseAdmin = ConnectionFactory.createConnection(conf1).getAdmin();<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    hbaseAdmin.addReplicationPeer("2", rpc);<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>    TableDescriptor table = TableDescriptorBuilder.newBuilder(tableName)<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        .setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(famName).setMaxVersions(100)<a name="line.235"></a>
-<span class="sourceLineNo">236</span>            .setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build())<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        .setColumnFamily(ColumnFamilyDescriptorBuilder.of(noRepfamName)).build();<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    scopes = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    for (ColumnFamilyDescriptor f : table.getColumnFamilies()) {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      scopes.put(f.getName(), f.getScope());<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    }<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    Connection connection1 = ConnectionFactory.createConnection(conf1);<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    Connection connection2 = ConnectionFactory.createConnection(conf2);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    try (Admin admin1 = connection1.getAdmin()) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      admin1.createTable(table, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    }<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    try (Admin admin2 = connection2.getAdmin()) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      admin2.createTable(table, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    }<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    utility1.waitUntilAllRegionsAssigned(tableName);<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    utility2.waitUntilAllRegionsAssigned(tableName);<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    htable1 = connection1.getTable(tableName);<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    htable2 = connection2.getTable(tableName);<a name="line.253"></a>
-<span class="sourceLineNo">254</span>  }<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>  protected static void runSimplePutDeleteTest() throws IOException, InterruptedException {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    Put put = new Put(row);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    put.addColumn(famName, row, row);<a name="line.258"></a>
+<span class="sourceLineNo">218</span>    TableDescriptor table = TableDescriptorBuilder.newBuilder(tableName)<a name="line.218"></a>
+<span class="sourceLineNo">219</span>        .setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(famName).setMaxVersions(100)<a name="line.219"></a>
+<span class="sourceLineNo">220</span>            .setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build())<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        .setColumnFamily(ColumnFamilyDescriptorBuilder.of(noRepfamName)).build();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    scopes = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    for (ColumnFamilyDescriptor f : table.getColumnFamilies()) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      scopes.put(f.getName(), f.getScope());<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    }<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    Connection connection1 = ConnectionFactory.createConnection(conf1);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    Connection connection2 = ConnectionFactory.createConnection(conf2);<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    try (Admin admin1 = connection1.getAdmin()) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      admin1.createTable(table, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    }<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    try (Admin admin2 = connection2.getAdmin()) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      admin2.createTable(table, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    }<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    utility1.waitUntilAllRegionsAssigned(tableName);<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    utility2.waitUntilAllRegionsAssigned(tableName);<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    htable1 = connection1.getTable(tableName);<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    htable2 = connection2.getTable(tableName);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  }<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>  private boolean peerExist(String peerId) throws IOException {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    return hbaseAdmin.listReplicationPeers().stream().anyMatch(p -&gt; peerId.equals(p.getPeerId()));<a name="line.241"></a>
+<span class="sourceLineNo">242</span>  }<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span>  @Before<a name="line.244"></a>
+<span class="sourceLineNo">245</span>  public void setUpBase() throws IOException {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    if (!peerExist(PEER_ID2)) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      ReplicationPeerConfig rpc = ReplicationPeerConfig.newBuilder()<a name="line.247"></a>
+<span class="sourceLineNo">248</span>          .setClusterKey(utility2.getClusterKey()).setSerial(isSerialPeer()).build();<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      hbaseAdmin.addReplicationPeer(PEER_ID2, rpc);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    }<a name="line.250"></a>
+<span class="sourceLineNo">251</span>  }<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>  @After<a name="line.253"></a>
+<span class="sourceLineNo">254</span>  public void tearDownBase() throws IOException {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    if (peerExist(PEER_ID2)) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      hbaseAdmin.removeReplicationPeer(PEER_ID2);<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    }<a name="line.257"></a>
+<span class="sourceLineNo">258</span>  }<a name="line.258"></a>
 <span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>    htable1 = utility1.getConnection().getTable(tableName);<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    htable1.put(put);<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>    Get get = new Get(row);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      if (i == NB_RETRIES - 1) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>        fail("Waited too much time for put replication");<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      }<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      Result res = htable2.get(get);<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      if (res.isEmpty()) {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>        LOG.info("Row not available");<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        Thread.sleep(SLEEP_TIME);<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      } else {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>        assertArrayEquals(row, res.value());<a name="line.273"></a>
-<span class="sourceLineNo">274</span>        break;<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      }<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    }<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    Delete del = new Delete(row);<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    htable1.delete(del);<a name="line.279"></a>
-<span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>    get = new Get(row);<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>      if (i == NB_RETRIES - 1) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>        fail("Waited too much time for del replication");<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      }<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      Result res = htable2.get(get);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      if (res.size() &gt;= 1) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>        LOG.info("Row not deleted");<a name="line.288"></a>
-<span class="sourceLineNo">289</span>        Thread.sleep(SLEEP_TIME);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      } else {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        break;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    }<a name="line.293"></a>
-<span class="sourceLineNo">294</span>  }<a name="line.294"></a>
-<span class="sourceLineNo">295</span><a name="line.295"></a>
-<span class="sourceLineNo">296</span>  protected static void runSmallBatchTest() throws IOException, InterruptedException {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    // normal Batch tests<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    loadData("", row);<a name="line.298"></a>
+<span class="sourceLineNo">260</span>  protected static void runSimplePutDeleteTest() throws IOException, InterruptedException {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    Put put = new Put(row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    put.addColumn(famName, row, row);<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>    htable1 = utility1.getConnection().getTable(tableName);<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    htable1.put(put);<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>    Get get = new Get(row);<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      if (i == NB_RETRIES - 1) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        fail("Waited too much time for put replication");<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      }<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      Result res = htable2.get(get);<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      if (res.isEmpty()) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        LOG.info("Row not available");<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        Thread.sleep(SLEEP_TIME);<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      } else {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        assertArrayEquals(row, res.value());<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        break;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      }<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    }<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>    Delete del = new Delete(row);<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    htable1.delete(del);<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>    get = new Get(row);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      if (i == NB_RETRIES - 1) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>        fail("Waited too much time for del replication");<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      }<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      Result res = htable2.get(get);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>      if (res.size() &gt;= 1) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        LOG.info("Row not deleted");<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        Thread.sleep(SLEEP_TIME);<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      } else {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        break;<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      }<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
+<span class="sourceLineNo">298</span>  }<a name="line.298"></a>
 <span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>    Scan scan = new Scan();<a name="line.300"></a>
-<span class="sourceLineNo">301</span><a name="line.301"></a>
-<span class="sourceLineNo">302</span>    ResultScanner scanner1 = htable1.getScanner(scan);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    Result[] res1 = scanner1.next(NB_ROWS_IN_BATCH);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    scanner1.close();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    assertEquals(NB_ROWS_IN_BATCH, res1.length);<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>    waitForReplication(NB_ROWS_IN_BATCH, NB_RETRIES);<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  }<a name="line.308"></a>
-<span class="sourceLineNo">309</span><a name="line.309"></a>
-<span class="sourceLineNo">310</span>  @AfterClass<a name="line.310"></a>
-<span class="sourceLineNo">311</span>  public static void tearDownAfterClass() throws Exception {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    htable2.close();<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    htable1.close();<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    admin.close();<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    utility2.shutdownMiniCluster();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    utility1.shutdownMiniCluster();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>  }<a name="line.317"></a>
-<span class="sourceLineNo">318</span>}<a name="line.318"></a>
+<span class="sourceLineNo">300</span>  protected static void runSmallBatchTest() throws IOException, InterruptedException {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    // normal Batch tests<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    loadData("", row);<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>    Scan scan = new Scan();<a name="line.304"></a>
+<span class="sourceLineNo">305</span><a name="line.305"></a>
+<span class="sourceLineNo">306</span>    ResultScanner scanner1 = htable1.getScanner(scan);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    Result[] res1 = scanner1.next(NB_ROWS_IN_BATCH);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    scanner1.close();<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    assertEquals(NB_ROWS_IN_BATCH, res1.length);<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>    waitForReplication(NB_ROWS_IN_BATCH, NB_RETRIES);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>  }<a name="line.312"></a>
+<span class="sourceLineNo">313</span><a name="line.313"></a>
+<span class="sourceLineNo">314</span>  @AfterClass<a name="line.314"></a>
+<span class="sourceLineNo">315</span>  public static void tearDownAfterClass() throws Exception {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    htable2.close();<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    htable1.close();<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    admin.close();<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    utility2.shutdownMiniCluster();<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    utility1.shutdownMiniCluster();<a name="line.320"></a>
+<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>}<a name="line.322"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html
index 06c8213..8421b5f 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html
@@ -30,129 +30,149 @@
 <span class="sourceLineNo">022</span>import static org.junit.Assert.fail;<a name="line.22"></a>
 <span class="sourceLineNo">023</span><a name="line.23"></a>
 <span class="sourceLineNo">024</span>import java.io.IOException;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.MiniHBaseCluster;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.client.Get;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.client.Put;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.client.Result;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.testclassification.ReplicationTests;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.util.JVMClusterUtil;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.junit.Before;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.junit.ClassRule;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.junit.Test;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.junit.experimental.categories.Category;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.slf4j.Logger;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.slf4j.LoggerFactory;<a name="line.41"></a>
-<span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span>/**<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * Test handling of changes to the number of a peer's regionservers.<a name="line.44"></a>
-<span class="sourceLineNo">045</span> */<a name="line.45"></a>
-<span class="sourceLineNo">046</span>@Category({ReplicationTests.class, LargeTests.class})<a name="line.46"></a>
-<span class="sourceLineNo">047</span>public class TestReplicationChangingPeerRegionservers extends TestReplicationBase {<a name="line.47"></a>
+<span class="sourceLineNo">025</span>import java.util.List;<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.MiniHBaseCluster;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.client.Get;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.client.Put;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.client.Result;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.testclassification.ReplicationTests;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.util.JVMClusterUtil;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.junit.Before;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.junit.ClassRule;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.junit.Test;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.junit.experimental.categories.Category;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.junit.runner.RunWith;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.junit.runners.Parameterized;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.junit.runners.Parameterized.Parameter;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.junit.runners.Parameterized.Parameters;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.slf4j.Logger;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.slf4j.LoggerFactory;<a name="line.47"></a>
 <span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>  @ClassRule<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.50"></a>
-<span class="sourceLineNo">051</span>      HBaseClassTestRule.forClass(TestReplicationChangingPeerRegionservers.class);<a name="line.51"></a>
-<span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span>  private static final Logger LOG =<a name="line.53"></a>
-<span class="sourceLineNo">054</span>      LoggerFactory.getLogger(TestReplicationChangingPeerRegionservers.class);<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>  /**<a name="line.56"></a>
-<span class="sourceLineNo">057</span>   * @throws java.lang.Exception<a name="line.57"></a>
-<span class="sourceLineNo">058</span>   */<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  @Before<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  public void setUp() throws Exception {<a name="line.60"></a>
-<span class="sourceLineNo">061</span>    // Starting and stopping replication can make us miss new logs,<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    // rolling like this makes sure the most recent one gets added to the queue<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    for (JVMClusterUtil.RegionServerThread r :<a name="line.63"></a>
-<span class="sourceLineNo">064</span>                          utility1.getHBaseCluster().getRegionServerThreads()) {<a name="line.64"></a>
-<span class="sourceLineNo">065</span>      utility1.getAdmin().rollWALWriter(r.getRegionServer().getServerName());<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    }<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    utility1.deleteTableData(tableName);<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    // truncating the table will send one Delete per row to the slave cluster<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    // in an async fashion, which is why we cannot just call deleteTableData on<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    // utility2 since late writes could make it to the slave in some way.<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    // Instead, we truncate the first table and wait for all the Deletes to<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    // make it to the slave.<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    Scan scan = new Scan();<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    int lastCount = 0;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      if (i == NB_RETRIES - 1) {<a name="line.76"></a>
-<span class="sourceLineNo">077</span>        fail("Waited too much time for truncate");<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      }<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      ResultScanner scanner = htable2.getScanner(scan);<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      Result[] res = scanner.next(NB_ROWS_IN_BIG_BATCH);<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      scanner.close();<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      if (res.length != 0) {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>        if (res.length &lt; lastCount) {<a name="line.83"></a>
-<span class="sourceLineNo">084</span>          i--; // Don't increment timeout if we make progress<a name="line.84"></a>
-<span class="sourceLineNo">085</span>        }<a name="line.85"></a>
-<span class="sourceLineNo">086</span>        lastCount = res.length;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>        LOG.info("Still got " + res.length + " rows");<a name="line.87"></a>
-<span class="sourceLineNo">088</span>        Thread.sleep(SLEEP_TIME);<a name="line.88"></a>
-<span class="sourceLineNo">089</span>      } else {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>        break;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      }<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    }<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  }<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>  @Test<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  public void testChangingNumberOfPeerRegionServers() throws IOException, InterruptedException {<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>    LOG.info("testSimplePutDelete");<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    MiniHBaseCluster peerCluster = utility2.getMiniHBaseCluster();<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    int numRS = peerCluster.getRegionServerThreads().size();<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span>    doPutTest(Bytes.toBytes(1));<a name="line.102"></a>
-<span class="sourceLineNo">103</span><a name="line.103"></a>
-<span class="sourceLineNo">104</span>    int rsToStop = peerCluster.getServerWithMeta() == 0 ? 1 : 0;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    peerCluster.stopRegionServer(rsToStop);<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    peerCluster.waitOnRegionServer(rsToStop);<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>    // Sanity check<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    assertEquals(numRS - 1, peerCluster.getRegionServerThreads().size());<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>    doPutTest(Bytes.toBytes(2));<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>    peerCluster.startRegionServer();<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>    // Sanity check<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    assertEquals(numRS, peerCluster.getRegionServerThreads().size());<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>    doPutTest(Bytes.toBytes(3));<a name="line.118"></a>
-<span class="sourceLineNo">119</span><a name="line.119"></a>
-<span class="sourceLineNo">120</span>  }<a name="line.120"></a>
-<span class="sourceLineNo">121</span><a name="line.121"></a>
-<span class="sourceLineNo">122</span>  private void doPutTest(byte[] row) throws IOException, InterruptedException {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    Put put = new Put(row);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    put.addColumn(famName, row, row);<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>    if (htable1 == null) {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      htable1 = utility1.getConnection().getTable(tableName);<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    }<a name="line.128"></a>
-<span class="sourceLineNo">129</span><a name="line.129"></a>
-<span class="sourceLineNo">130</span>    htable1.put(put);<a name="line.130"></a>
+<span class="sourceLineNo">049</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableList;<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>/**<a name="line.51"></a>
+<span class="sourceLineNo">052</span> * Test handling of changes to the number of a peer's regionservers.<a name="line.52"></a>
+<span class="sourceLineNo">053</span> */<a name="line.53"></a>
+<span class="sourceLineNo">054</span>@RunWith(Parameterized.class)<a name="line.54"></a>
+<span class="sourceLineNo">055</span>@Category({ ReplicationTests.class, LargeTests.class })<a name="line.55"></a>
+<span class="sourceLineNo">056</span>public class TestReplicationChangingPeerRegionservers extends TestReplicationBase {<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>  @ClassRule<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.59"></a>
+<span class="sourceLineNo">060</span>      HBaseClassTestRule.forClass(TestReplicationChangingPeerRegionservers.class);<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private static final Logger LOG =<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      LoggerFactory.getLogger(TestReplicationChangingPeerRegionservers.class);<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>  @Parameter<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  public boolean serialPeer;<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>  @Override<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  protected boolean isSerialPeer() {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    return serialPeer;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  }<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>  @Parameters(name = "{index}: serialPeer={0}")<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  public static List&lt;Boolean&gt; parameters() {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    return ImmutableList.of(true, false);<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  }<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>  /**<a name="line.78"></a>
+<span class="sourceLineNo">079</span>   * @throws java.lang.Exception<a name="line.79"></a>
+<span class="sourceLineNo">080</span>   */<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  @Before<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  public void setUp() throws Exception {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    // Starting and stopping replication can make us miss new logs,<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    // rolling like this makes sure the most recent one gets added to the queue<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    for (JVMClusterUtil.RegionServerThread r : utility1.getHBaseCluster()<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        .getRegionServerThreads()) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      utility1.getAdmin().rollWALWriter(r.getRegionServer().getServerName());<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    }<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    utility1.deleteTableData(tableName);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    // truncating the table will send one Delete per row to the slave cluster<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    // in an async fashion, which is why we cannot just call deleteTableData on<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    // utility2 since late writes could make it to the slave in some way.<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    // Instead, we truncate the first table and wait for all the Deletes to<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    // make it to the slave.<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    Scan scan = new Scan();<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    int lastCount = 0;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>      if (i == NB_RETRIES - 1) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        fail("Waited too much time for truncate");<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      ResultScanner scanner = htable2.getScanner(scan);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>      Result[] res = scanner.next(NB_ROWS_IN_BIG_BATCH);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      scanner.close();<a name="line.103"></a>
+<span class="sourceLineNo">104</span>      if (res.length != 0) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        if (res.length &lt; lastCount) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>          i--; // Don't increment timeout if we make progress<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        }<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        lastCount = res.length;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>        LOG.info("Still got " + res.length + " rows");<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        Thread.sleep(SLEEP_TIME);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      } else {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        break;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      }<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    }<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  }<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>  @Test<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  public void testChangingNumberOfPeerRegionServers() throws IOException, InterruptedException {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    LOG.info("testSimplePutDelete");<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    MiniHBaseCluster peerCluster = utility2.getMiniHBaseCluster();<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    int numRS = peerCluster.getRegionServerThreads().size();<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>    doPutTest(Bytes.toBytes(1));<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span>    int rsToStop = peerCluster.getServerWithMeta() == 0 ? 1 : 0;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    peerCluster.stopRegionServer(rsToStop);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    peerCluster.waitOnRegionServer(rsToStop);<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>    // Sanity check<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    assertEquals(numRS - 1, peerCluster.getRegionServerThreads().size());<a name="line.130"></a>
 <span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span>    Get get = new Get(row);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      if (i == NB_RETRIES - 1) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>        fail("Waited too much time for put replication");<a name="line.135"></a>
-<span class="sourceLineNo">136</span>      }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      Result res = htable2.get(get);<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      if (res.isEmpty()) {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>        LOG.info("Row not available");<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        Thread.sleep(SLEEP_TIME);<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      } else {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>        assertArrayEquals(res.value(), row);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>        break;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      }<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span>  }<a name="line.146"></a>
-<span class="sourceLineNo">147</span>}<a name="line.147"></a>
+<span class="sourceLineNo">132</span>    doPutTest(Bytes.toBytes(2));<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>    peerCluster.startRegionServer();<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>    // Sanity check<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    assertEquals(numRS, peerCluster.getRegionServerThreads().size());<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>    doPutTest(Bytes.toBytes(3));<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>  private void doPutTest(byte[] row) throws IOException, InterruptedException {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    Put put = new Put(row);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    put.addColumn(famName, row, row);<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>    if (htable1 == null) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      htable1 = utility1.getConnection().getTable(tableName);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    }<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    htable1.put(put);<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    Get get = new Get(row);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      if (i == NB_RETRIES - 1) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        fail("Waited too much time for put replication");<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      Result res = htable2.get(get);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      if (res.isEmpty()) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        LOG.info("Row not available");<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        Thread.sleep(SLEEP_TIME);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      } else {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        assertArrayEquals(res.value(), row);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        break;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      }<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  }<a name="line.166"></a>
+<span class="sourceLineNo">167</span>}<a name="line.167"></a>
 
 
 


[35/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.


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

Branch: refs/heads/asf-site
Commit: a610f23a90053baee65ae53ad3c447b4adf77e20
Parents: 5a9aefd
Author: jenkins <bu...@apache.org>
Authored: Tue Apr 17 14:46:24 2018 +0000
Committer: jenkins <bu...@apache.org>
Committed: Tue Apr 17 14:46:24 2018 +0000

----------------------------------------------------------------------
 acid-semantics.html                             |   4 +-
 apache_hbase_reference_guide.pdf                |   4 +-
 apidocs/allclasses-frame.html                   |   2 +
 apidocs/allclasses-noframe.html                 |   2 +
 apidocs/deprecated-list.html                    |   5 +
 apidocs/index-all.html                          |  77 +-
 .../apache/hadoop/hbase/HBaseIOException.html   |   2 +-
 .../hbase/class-use/DoNotRetryIOException.html  |   4 +-
 .../hbase/class-use/HBaseIOException.html       |  12 +-
 .../apache/hadoop/hbase/quotas/QuotaType.html   |   4 +-
 .../quotas/RpcThrottlingException.Type.html     | 395 +++++++++
 .../hbase/quotas/RpcThrottlingException.html    | 467 ++++++++++
 .../hbase/quotas/SpaceLimitingException.html    |   4 +-
 .../hbase/quotas/ThrottlingException.Type.html  |  18 +-
 .../hbase/quotas/ThrottlingException.html       |  95 +-
 .../class-use/QuotaExceededException.html       |   4 +-
 .../class-use/RpcThrottlingException.Type.html  | 191 ++++
 .../class-use/RpcThrottlingException.html       | 185 ++++
 .../class-use/ThrottlingException.Type.html     |   8 +-
 .../quotas/class-use/ThrottlingException.html   |  24 +-
 .../hadoop/hbase/quotas/package-frame.html      |   2 +
 .../hadoop/hbase/quotas/package-summary.html    |  20 +-
 .../hadoop/hbase/quotas/package-tree.html       |   2 +
 .../apache/hadoop/hbase/quotas/package-use.html |  16 +-
 apidocs/overview-tree.html                      |   2 +
 apidocs/serialized-form.html                    |  22 +
 .../quotas/RpcThrottlingException.Type.html     | 203 +++++
 .../hbase/quotas/RpcThrottlingException.html    | 203 +++++
 .../hbase/quotas/ThrottlingException.Type.html  | 275 +++---
 .../hbase/quotas/ThrottlingException.html       | 275 +++---
 book.html                                       |   2 +-
 bulk-loads.html                                 |   4 +-
 checkstyle-aggregate.html                       |  96 +-
 checkstyle.rss                                  |  48 +-
 coc.html                                        |   4 +-
 dependencies.html                               |   4 +-
 dependency-convergence.html                     |   4 +-
 dependency-info.html                            |   4 +-
 dependency-management.html                      |   4 +-
 devapidocs/allclasses-frame.html                |   2 +
 devapidocs/allclasses-noframe.html              |   2 +
 devapidocs/constant-values.html                 |  25 +-
 devapidocs/deprecated-list.html                 |   5 +
 devapidocs/index-all.html                       | 125 ++-
 .../apache/hadoop/hbase/HBaseIOException.html   |   2 +-
 .../hadoop/hbase/backup/package-tree.html       |   4 +-
 .../hbase/class-use/DoNotRetryIOException.html  |   4 +-
 .../hbase/class-use/HBaseIOException.html       |  12 +-
 .../hadoop/hbase/client/package-tree.html       |  22 +-
 .../hbase/exceptions/ClientExceptionsUtil.html  |   4 +-
 .../hadoop/hbase/filter/package-tree.html       |   6 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |   4 +-
 .../apache/hadoop/hbase/ipc/package-tree.html   |   2 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |   2 +-
 .../hadoop/hbase/master/package-tree.html       |   4 +-
 .../hbase/master/procedure/package-tree.html    |   4 +-
 .../org/apache/hadoop/hbase/package-tree.html   |  16 +-
 .../hadoop/hbase/procedure2/package-tree.html   |   6 +-
 .../hbase/quotas/DefaultOperationQuota.html     |   5 +-
 .../hadoop/hbase/quotas/NoopOperationQuota.html |   5 +-
 .../hadoop/hbase/quotas/NoopQuotaLimiter.html   |   4 +-
 .../hadoop/hbase/quotas/OperationQuota.html     |  19 +-
 .../hadoop/hbase/quotas/QuotaLimiter.html       |   4 +-
 .../quotas/RegionServerRpcQuotaManager.html     |  12 +-
 .../hbase/quotas/RegionSizeStoreImpl.html       |   4 +-
 .../quotas/RpcThrottlingException.Type.html     | 395 +++++++++
 .../hbase/quotas/RpcThrottlingException.html    | 579 +++++++++++++
 .../quotas/SnapshotQuotaObserverChore.html      |   4 +-
 .../hbase/quotas/ThrottlingException.Type.html  |  18 +-
 .../hbase/quotas/ThrottlingException.html       | 144 ++-
 .../hadoop/hbase/quotas/TimeBasedLimiter.html   |   4 +-
 .../class-use/QuotaExceededException.html       |   4 +-
 .../class-use/RpcThrottlingException.Type.html  | 218 +++++
 .../class-use/RpcThrottlingException.html       | 250 ++++++
 .../class-use/ThrottlingException.Type.html     |  16 +-
 .../quotas/class-use/ThrottlingException.html   |  92 +-
 .../hadoop/hbase/quotas/package-frame.html      |   2 +
 .../hadoop/hbase/quotas/package-summary.html    |  20 +-
 .../hadoop/hbase/quotas/package-tree.html       |   8 +-
 .../apache/hadoop/hbase/quotas/package-use.html |  16 +-
 .../hadoop/hbase/regionserver/package-tree.html |  12 +-
 .../regionserver/querymatcher/package-tree.html |   2 +-
 .../hbase/security/access/package-tree.html     |   2 +-
 .../hadoop/hbase/thrift/package-tree.html       |   4 +-
 .../apache/hadoop/hbase/util/package-tree.html  |   8 +-
 devapidocs/overview-tree.html                   |   2 +
 devapidocs/serialized-form.html                 |  22 +
 .../org/apache/hadoop/hbase/Version.html        |   6 +-
 .../hbase/exceptions/ClientExceptionsUtil.html  |   6 +-
 .../hbase/quotas/DefaultOperationQuota.html     |   2 +-
 .../hadoop/hbase/quotas/NoopOperationQuota.html |   2 +-
 .../hadoop/hbase/quotas/NoopQuotaLimiter.html   |   2 +-
 .../quotas/OperationQuota.OperationType.html    |  65 +-
 .../hadoop/hbase/quotas/OperationQuota.html     |  65 +-
 .../hadoop/hbase/quotas/QuotaLimiter.html       |   4 +-
 .../quotas/RegionServerRpcQuotaManager.html     |  14 +-
 .../quotas/RpcThrottlingException.Type.html     | 203 +++++
 .../hbase/quotas/RpcThrottlingException.html    | 203 +++++
 .../hbase/quotas/ThrottlingException.Type.html  | 275 +++---
 .../hbase/quotas/ThrottlingException.html       | 275 +++---
 .../hadoop/hbase/quotas/TimeBasedLimiter.html   |  14 +-
 export_control.html                             |   4 +-
 index.html                                      |   4 +-
 integration.html                                |   4 +-
 issue-tracking.html                             |   4 +-
 license.html                                    |   4 +-
 mail-lists.html                                 |   4 +-
 metrics.html                                    |   4 +-
 old_news.html                                   |   4 +-
 plugin-management.html                          |   4 +-
 plugins.html                                    |   4 +-
 poweredbyhbase.html                             |   4 +-
 project-info.html                               |   4 +-
 project-reports.html                            |   4 +-
 project-summary.html                            |   4 +-
 pseudo-distributed.html                         |   4 +-
 replication.html                                |   4 +-
 resources.html                                  |   4 +-
 source-repository.html                          |   4 +-
 sponsors.html                                   |   4 +-
 supportingprojects.html                         |   4 +-
 team-list.html                                  |   4 +-
 testdevapidocs/allclasses-frame.html            |   2 +
 testdevapidocs/allclasses-noframe.html          |   2 +
 testdevapidocs/constant-values.html             |   7 +
 testdevapidocs/index-all.html                   |  56 +-
 .../hbase/class-use/HBaseClassTestRule.html     |  10 +-
 ...usters.TestUpdatableReplicationEndpoint.html |  22 +-
 .../TestReplicationAdminWithClusters.html       |  24 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |   2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |  10 +-
 .../hadoop/hbase/procedure/package-tree.html    |   8 +-
 .../hadoop/hbase/procedure2/package-tree.html   |   2 +-
 .../hadoop/hbase/quotas/TestQuotaAdmin.html     |  62 +-
 .../hadoop/hbase/regionserver/package-tree.html |   4 +-
 .../replication/TestNamespaceReplication.html   | 105 ++-
 .../hbase/replication/TestReplicationBase.html  | 158 ++--
 ...estReplicationChangingPeerRegionservers.html |  71 +-
 .../TestReplicationDisableInactivePeer.html     |   4 +-
 .../TestReplicationDroppedTables.html           |  12 +-
 .../TestReplicationEmptyWALRecovery.html        |   4 +-
 ...Endpoint.EverythingPassesWALEntryFilter.html |  10 +-
 ....EverythingPassesWALEntryFilterSubclass.html |   4 +-
 ...licationEndpointForTest.DummyReplicator.html |   8 +-
 ...nEndpointForTest.FailingDummyReplicator.html |   6 +-
 ....InterClusterReplicationEndpointForTest.html |   6 +-
 ...tionEndpoint.ReplicationEndpointForTest.html |  16 +-
 ...point.ReplicationEndpointReturningFalse.html |  12 +-
 ...t.ReplicationEndpointWithWALEntryFilter.html |  10 +-
 .../replication/TestReplicationEndpoint.html    |  28 +-
 .../TestReplicationKillMasterRS.html            |  12 +-
 .../TestReplicationKillMasterRSCompressed.html  |   8 +-
 ...licationKillMasterRSWithSeparateOldWALs.html | 362 ++++++++
 .../replication/TestReplicationKillRS.html      |  10 +-
 .../replication/TestReplicationKillSlaveRS.html |  16 +-
 ...plicationKillSlaveRSWithSeparateOldWALs.html | 362 ++++++++
 .../replication/TestReplicationPeerConfig.html  |   4 +-
 .../replication/TestReplicationSmallTests.html  |  99 ++-
 .../replication/TestReplicationStatus.html      |   4 +-
 .../replication/TestReplicationSyncUpTool.html  |  74 +-
 ...ReplicationSyncUpToolWithBulkLoadedData.html |   6 +-
 .../replication/TestVerifyReplication.html      |   4 +-
 .../class-use/TestReplicationBase.html          |  10 +-
 ...licationKillMasterRSWithSeparateOldWALs.html | 125 +++
 .../class-use/TestReplicationKillRS.html        |   8 +
 ...plicationKillSlaveRSWithSeparateOldWALs.html | 125 +++
 ...ReplicationEndpointWithMultipleAsyncWAL.html |   4 +-
 .../TestReplicationEndpointWithMultipleWAL.html |   4 +-
 ...lMasterRSCompressedWithMultipleAsyncWAL.html |   4 +-
 ...onKillMasterRSCompressedWithMultipleWAL.html |   4 +-
 ...plicationSyncUpToolWithMultipleAsyncWAL.html |   6 +-
 ...estReplicationSyncUpToolWithMultipleWAL.html |   6 +-
 .../hadoop/hbase/replication/package-frame.html |   2 +
 .../hbase/replication/package-summary.html      |  10 +-
 .../hadoop/hbase/replication/package-tree.html  |   2 +
 .../regionserver/TestReplicator.html            |   4 +-
 .../apache/hadoop/hbase/test/package-tree.html  |   4 +-
 ...Utils.IsFileClosedDistributedFileSystem.html |   6 +-
 testdevapidocs/overview-tree.html               |   2 +
 testdevapidocs/serialized-form.html             |  22 +
 ...aCache.CallQueueTooBigExceptionInjector.html |  14 +-
 .../client/TestMetaCache.ExceptionInjector.html |  14 +-
 .../client/TestMetaCache.FakeRSRpcServices.html |  14 +-
 ...taCache.RegionServerWithFakeRpcServices.html |  14 +-
 ...stMetaCache.RoundRobinExceptionInjector.html |  14 +-
 .../hadoop/hbase/client/TestMetaCache.html      |  14 +-
 ...usters.TestUpdatableReplicationEndpoint.html | 408 ++++-----
 .../TestReplicationAdminWithClusters.html       | 408 ++++-----
 .../hadoop/hbase/quotas/TestQuotaAdmin.html     | 866 ++++++++++---------
 .../hadoop/hbase/quotas/TestQuotaState.html     |   4 +-
 .../hadoop/hbase/quotas/TestQuotaThrottle.html  |   4 +-
 ...estMasterReplication.CoprocessorCounter.html |   2 +-
 .../replication/TestMasterReplication.html      |   2 +-
 .../replication/TestMultiSlaveReplication.html  |   2 +-
 .../replication/TestNamespaceReplication.html   | 406 ++++-----
 .../hbase/replication/TestReplicationBase.html  | 570 ++++++------
 ...estReplicationChangingPeerRegionservers.html | 262 +++---
 .../TestReplicationDroppedTables.html           | 350 ++++----
 ...Endpoint.EverythingPassesWALEntryFilter.html | 858 +++++++++---------
 ....EverythingPassesWALEntryFilterSubclass.html | 858 +++++++++---------
 ...licationEndpointForTest.DummyReplicator.html | 858 +++++++++---------
 ...nEndpointForTest.FailingDummyReplicator.html | 858 +++++++++---------
 ....InterClusterReplicationEndpointForTest.html | 858 +++++++++---------
 ...tionEndpoint.ReplicationEndpointForTest.html | 858 +++++++++---------
 ...point.ReplicationEndpointReturningFalse.html | 858 +++++++++---------
 ...t.ReplicationEndpointWithWALEntryFilter.html | 858 +++++++++---------
 .../replication/TestReplicationEndpoint.html    | 858 +++++++++---------
 .../TestReplicationKillMasterRS.html            |  38 +-
 .../TestReplicationKillMasterRSCompressed.html  |   2 +-
 ...licationKillMasterRSWithSeparateOldWALs.html | 119 +++
 .../replication/TestReplicationKillSlaveRS.html |  37 +-
 ...plicationKillSlaveRSWithSeparateOldWALs.html | 119 +++
 .../replication/TestReplicationSmallTests.html  | 752 ++++++++--------
 .../replication/TestReplicationSyncUpTool.html  | 777 ++++++++---------
 ...Utils.IsFileClosedDistributedFileSystem.html |  50 +-
 .../hadoop/hbase/util/TestFSHDFSUtils.html      |  50 +-
 216 files changed, 13345 insertions(+), 7706 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index 5f956f4..9a79ccf 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) ACID Properties
@@ -601,7 +601,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 8fa20c9..4618f1e 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.alpha.15, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20180416144427+00'00')
-/CreationDate (D:20180416144427+00'00')
+/ModDate (D:20180417144434+00'00')
+/CreationDate (D:20180417144434+00'00')
 >>
 endobj
 2 0 obj

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/apidocs/allclasses-frame.html b/apidocs/allclasses-frame.html
index 26cce85..02e4170 100644
--- a/apidocs/allclasses-frame.html
+++ b/apidocs/allclasses-frame.html
@@ -311,6 +311,8 @@
 <li><a href="org/apache/hadoop/hbase/client/RowTooBigException.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">RowTooBigException</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/RowTooBigException.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">RowTooBigException</a></li>
 <li><a href="org/apache/hadoop/hbase/client/RpcRetryingCaller.html" title="interface in org.apache.hadoop.hbase.client" target="classFrame"><span class="interfaceName">RpcRetryingCaller</span></a></li>
+<li><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">RpcThrottlingException</a></li>
+<li><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">RpcThrottlingException.Type</a></li>
 <li><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup" target="classFrame">RSGroupInfo</a></li>
 <li><a href="org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">Scan</a></li>
 <li><a href="org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client" target="classFrame">Scan.ReadType</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/apidocs/allclasses-noframe.html b/apidocs/allclasses-noframe.html
index 8962a0b..2bd2ac8 100644
--- a/apidocs/allclasses-noframe.html
+++ b/apidocs/allclasses-noframe.html
@@ -311,6 +311,8 @@
 <li><a href="org/apache/hadoop/hbase/client/RowTooBigException.html" title="class in org.apache.hadoop.hbase.client">RowTooBigException</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/RowTooBigException.html" title="class in org.apache.hadoop.hbase.regionserver">RowTooBigException</a></li>
 <li><a href="org/apache/hadoop/hbase/client/RpcRetryingCaller.html" title="interface in org.apache.hadoop.hbase.client"><span class="interfaceName">RpcRetryingCaller</span></a></li>
+<li><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></li>
+<li><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></li>
 <li><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a></li>
 <li><a href="org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a></li>
 <li><a href="org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client">Scan.ReadType</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/deprecated-list.html
----------------------------------------------------------------------
diff --git a/apidocs/deprecated-list.html b/apidocs/deprecated-list.html
index d72d340..6463414 100644
--- a/apidocs/deprecated-list.html
+++ b/apidocs/deprecated-list.html
@@ -192,6 +192,11 @@
 <div class="block"><span class="deprecationComment">use <a href="org/apache/hadoop/hbase/client/RowTooBigException.html" title="class in org.apache.hadoop.hbase.client"><code>RowTooBigException</code></a> instead.</span></div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas.ThrottlingException</a>
+<div class="block"><span class="deprecationComment">replaced by <a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/index-all.html
----------------------------------------------------------------------
diff --git a/apidocs/index-all.html b/apidocs/index-all.html
index cc74120..9a3be99 100644
--- a/apidocs/index-all.html
+++ b/apidocs/index-all.html
@@ -5771,7 +5771,9 @@
 <div class="block">Unlimited time-to-live.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#formatTime-long-">formatTime(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html#foundColumn">foundColumn</a></span> - Variable in class org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html" title="class in org.apache.hadoop.hbase.filter">SingleColumnValueFilter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ByteRangeUtils.html#fromArrays-java.util.Collection-">fromArrays(Collection&lt;byte[]&gt;)</a></span> - Static method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ByteRangeUtils.html" title="class in org.apache.hadoop.hbase.util">ByteRangeUtils</a></dt>
@@ -9070,8 +9072,12 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/SnapshotDescription.html#getType--">getType()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getType--">getType()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/Cell.html#getTypeByte--">getTypeByte()</a></span> - Method in interface org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></dt>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>
@@ -9239,8 +9245,12 @@
 <dd>
 <div class="block">Retrieve the next long value, which is stored as VLong, from this range</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#getWaitInterval--">getWaitInterval()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getWaitInterval--">getWaitInterval()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#getWaitInterval--">getWaitInterval()</a></span> - Method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/BufferedMutator.html#getWriteBufferPeriodicFlushTimeoutMs--">getWriteBufferPeriodicFlushTimeoutMs()</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/BufferedMutator.html" title="interface in org.apache.hadoop.hbase.client">BufferedMutator</a></dt>
 <dd>
 <div class="block">Returns the current periodic flush timeout value in milliseconds.</div>
@@ -15439,6 +15449,16 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </dd>
 <dt><a href="org/apache/hadoop/hbase/client/RpcRetryingCaller.html" title="interface in org.apache.hadoop.hbase.client"><span class="typeNameLink">RpcRetryingCaller</span></a>&lt;<a href="org/apache/hadoop/hbase/client/RpcRetryingCaller.html" title="type parameter in RpcRetryingCaller">T</a>&gt; - Interface in <a href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException</span></a> - Exception in <a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></dt>
+<dd>
+<div class="block">Describe the throttling result.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-java.lang.String-">RpcThrottlingException(String)</a></span> - Constructor for exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-java.lang.String-">RpcThrottlingException(RpcThrottlingException.Type, long, String)</a></span> - Constructor for exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a> - Enum in <a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/BufferedMutatorParams.html#rpcTimeout-int-">rpcTimeout(int)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/BufferedMutatorParams.html" title="class in org.apache.hadoop.hbase.client">BufferedMutatorParams</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup"><span class="typeNameLink">RSGroupInfo</span></a> - Class in <a href="org/apache/hadoop/hbase/rsgroup/package-summary.html">org.apache.hadoop.hbase.rsgroup</a></dt>
@@ -18397,26 +18417,58 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </dd>
 <dt><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException</span></a> - Exception in <a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></dt>
 <dd>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">replaced by <a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-java.lang.String-">ThrottlingException(String)</a></span> - Constructor for exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-java.lang.String-">ThrottlingException(ThrottlingException.Type, long, String)</a></span> - Constructor for exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a> - Enum in <a href="org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/errorhandling/TimeoutException.html" title="class in org.apache.hadoop.hbase.errorhandling"><span class="typeNameLink">TimeoutException</span></a> - Exception in <a href="org/apache/hadoop/hbase/errorhandling/package-summary.html">org.apache.hadoop.hbase.errorhandling</a></dt>
 <dd>
 <div class="block">Exception for timeout of a task.</div>
@@ -19480,6 +19532,10 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <dd>
 <div class="block">Returns the enum constant of this type with the specified name.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a></dt>
 <dd>
 <div class="block">Returns the enum constant of this type with the specified name.</div>
@@ -19490,6 +19546,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></dt>
 <dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Returns the enum constant of this type with the specified name.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/BloomType.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver">BloomType</a></dt>
@@ -19638,6 +19695,11 @@ the order they are declared.</div>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#values--">values()</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html#values--">values()</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a></dt>
 <dd>
 <div class="block">Returns an array containing the constants of this enum type, in
@@ -19650,6 +19712,7 @@ the order they are declared.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#values--">values()</a></span> - Static method in enum org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></dt>
 <dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.</div>
 </dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/HBaseIOException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/HBaseIOException.html b/apidocs/org/apache/hadoop/hbase/HBaseIOException.html
index b04bef5..f47795d 100644
--- a/apidocs/org/apache/hadoop/hbase/HBaseIOException.html
+++ b/apidocs/org/apache/hadoop/hbase/HBaseIOException.html
@@ -122,7 +122,7 @@
 </dl>
 <dl>
 <dt>Direct Known Subclasses:</dt>
-<dd><a href="../../../../org/apache/hadoop/hbase/ipc/CallCancelledException.html" title="class in org.apache.hadoop.hbase.ipc">CallCancelledException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CallTimeoutException.html" title="class in org.apache.hadoop.hbase.ipc">CallTimeoutException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CellScannerButNoCodecException.html" title="class in org.apache.hadoop.hbase.ipc">CellScannerButNoCodecException</a>, <a href="../../../../org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/FailedServerException.html" title="class in org.apache.hadoop.hbase.ipc">FailedServerException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/FallbackDisallowedException.html" title="class in org.apache.hadoop.hbase.ipc">FallbackDisallowedException</a>, <a href="../../../../org/apache/hadoop/hbase/util/LeaseNotRecoveredException.
 html" title="class in org.apache.hadoop.hbase.util">LeaseNotRecoveredException</a>, <a href="../../../../org/apache/hadoop/hbase/MasterNotRunningException.html" title="class in org.apache.hadoop.hbase">MasterNotRunningException</a>, <a href="../../../../org/apache/hadoop/hbase/PleaseHoldException.html" title="class in org.apache.hadoop.hbase">PleaseHoldException</a>, <a href="../../../../org/apache/hadoop/hbase/RegionException.html" title="class in org.apache.hadoop.hbase">RegionException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/StoppedRpcClientException.html" title="class in org.apache.hadoop.hbase.ipc">StoppedRpcClientException</a>, <a href="../../../../org/apache/hadoop/hbase/TableInfoMissingException.html" title="class in org.apache.hadoop.hbase">TableInfoMissingException</a>, <a href="../../../../org/apache/hadoop/hbase/client/WrongRowIOException.html" title="class in org.apache.hadoop.hbase.client">WrongRowIOException</a></dd>
+<dd><a href="../../../../org/apache/hadoop/hbase/ipc/CallCancelledException.html" title="class in org.apache.hadoop.hbase.ipc">CallCancelledException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CallTimeoutException.html" title="class in org.apache.hadoop.hbase.ipc">CallTimeoutException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/CellScannerButNoCodecException.html" title="class in org.apache.hadoop.hbase.ipc">CellScannerButNoCodecException</a>, <a href="../../../../org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/FailedServerException.html" title="class in org.apache.hadoop.hbase.ipc">FailedServerException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/FallbackDisallowedException.html" title="class in org.apache.hadoop.hbase.ipc">FallbackDisallowedException</a>, <a href="../../../../org/apache/hadoop/hbase/util/LeaseNotRecoveredException.
 html" title="class in org.apache.hadoop.hbase.util">LeaseNotRecoveredException</a>, <a href="../../../../org/apache/hadoop/hbase/MasterNotRunningException.html" title="class in org.apache.hadoop.hbase">MasterNotRunningException</a>, <a href="../../../../org/apache/hadoop/hbase/PleaseHoldException.html" title="class in org.apache.hadoop.hbase">PleaseHoldException</a>, <a href="../../../../org/apache/hadoop/hbase/RegionException.html" title="class in org.apache.hadoop.hbase">RegionException</a>, <a href="../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/StoppedRpcClientException.html" title="class in org.apache.hadoop.hbase.ipc">StoppedRpcClientException</a>, <a href="../../../../org/apache/hadoop/hbase/TableInfoMissingException.html" title="class in org.apache.hadoop.hbase">TableInfoMissingException</a>, <a href="../../../../org/apache/had
 oop/hbase/client/WrongRowIOException.html" title="class in org.apache.hadoop.hbase.client">WrongRowIOException</a></dd>
 </dl>
 <hr>
 <br>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html b/apidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html
index dca06ed..0a58d3f 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/DoNotRetryIOException.html
@@ -381,7 +381,9 @@
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></span></code>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
 </td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html b/apidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html
index b11262d..3a6e532 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/HBaseIOException.html
@@ -456,14 +456,22 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></span></code>
+<div class="block">Describe the throttling result.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas">SpaceLimitingException</a></span></code>
 <div class="block">An Exception that is thrown when a space quota is in violation.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></span></code>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
 </td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/QuotaType.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/QuotaType.html b/apidocs/org/apache/hadoop/hbase/quotas/QuotaType.html
index 657fa0f..3a2d25e 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/QuotaType.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/QuotaType.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettingsFactory.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/QuotaType.html" target="_top">Frames</a></li>
@@ -311,7 +311,7 @@ not permitted.)</div>
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettingsFactory.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/QuotaType.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html b/apidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
new file mode 100644
index 0000000..995d575
--- /dev/null
+++ b/apidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
@@ -0,0 +1,395 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RpcThrottlingException.Type (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RpcThrottlingException.Type (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RpcThrottlingException.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.quotas</div>
+<h2 title="Enum RpcThrottlingException.Type" class="title">Enum RpcThrottlingException.Type</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>@InterfaceAudience.Public
+public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.30">RpcThrottlingException.Type</a>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&gt;</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#NumReadRequestsExceeded">NumReadRequestsExceeded</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#NumRequestsExceeded">NumRequestsExceeded</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#NumWriteRequestsExceeded">NumWriteRequestsExceeded</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#ReadSizeExceeded">ReadSizeExceeded</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#RequestSizeExceeded">RequestSizeExceeded</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#WriteSizeExceeded">WriteSizeExceeded</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/
 8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="NumRequestsExceeded">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NumRequestsExceeded</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.31">NumRequestsExceeded</a></pre>
+</li>
+</ul>
+<a name="RequestSizeExceeded">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RequestSizeExceeded</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.31">RequestSizeExceeded</a></pre>
+</li>
+</ul>
+<a name="NumReadRequestsExceeded">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NumReadRequestsExceeded</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.31">NumReadRequestsExceeded</a></pre>
+</li>
+</ul>
+<a name="NumWriteRequestsExceeded">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NumWriteRequestsExceeded</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.31">NumWriteRequestsExceeded</a></pre>
+</li>
+</ul>
+<a name="WriteSizeExceeded">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WriteSizeExceeded</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.32">WriteSizeExceeded</a></pre>
+</li>
+</ul>
+<a name="ReadSizeExceeded">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ReadSizeExceeded</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.32">ReadSizeExceeded</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.17">values</a>()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (RpcThrottlingException.Type c : RpcThrottlingException.Type.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.17">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RpcThrottlingException.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>


[32/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html b/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html
index 985e2ef..c27a837 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html
@@ -37,145 +37,148 @@
 <span class="sourceLineNo">029</span> * TODO: At some point this will be handled on the client side to prevent<a name="line.29"></a>
 <span class="sourceLineNo">030</span> * operation to go on the server if the waitInterval is grater than the one got<a name="line.30"></a>
 <span class="sourceLineNo">031</span> * as result of this exception.<a name="line.31"></a>
-<span class="sourceLineNo">032</span> */<a name="line.32"></a>
-<span class="sourceLineNo">033</span>@InterfaceAudience.Public<a name="line.33"></a>
-<span class="sourceLineNo">034</span>public class ThrottlingException extends QuotaExceededException {<a name="line.34"></a>
-<span class="sourceLineNo">035</span>  private static final long serialVersionUID = 1406576492085155743L;<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>  @InterfaceAudience.Public<a name="line.37"></a>
-<span class="sourceLineNo">038</span>  public enum Type {<a name="line.38"></a>
-<span class="sourceLineNo">039</span>    NumRequestsExceeded,<a name="line.39"></a>
-<span class="sourceLineNo">040</span>    RequestSizeExceeded,<a name="line.40"></a>
-<span class="sourceLineNo">041</span>    NumReadRequestsExceeded,<a name="line.41"></a>
-<span class="sourceLineNo">042</span>    NumWriteRequestsExceeded,<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    WriteSizeExceeded,<a name="line.43"></a>
-<span class="sourceLineNo">044</span>    ReadSizeExceeded,<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  }<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span>  private static final String[] MSG_TYPE = new String[] {<a name="line.47"></a>
-<span class="sourceLineNo">048</span>    "number of requests exceeded",<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    "request size limit exceeded",<a name="line.49"></a>
-<span class="sourceLineNo">050</span>    "number of read requests exceeded",<a name="line.50"></a>
-<span class="sourceLineNo">051</span>    "number of write requests exceeded",<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    "write size limit exceeded",<a name="line.52"></a>
-<span class="sourceLineNo">053</span>    "read size limit exceeded",<a name="line.53"></a>
-<span class="sourceLineNo">054</span>  };<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>  private static final String MSG_WAIT = " - wait ";<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>  private long waitInterval;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  private Type type;<a name="line.59"></a>
+<span class="sourceLineNo">032</span> *<a name="line.32"></a>
+<span class="sourceLineNo">033</span> * @deprecated  replaced by {@link RpcThrottlingException} since hbase-2.0.0.<a name="line.33"></a>
+<span class="sourceLineNo">034</span> */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>@Deprecated<a name="line.35"></a>
+<span class="sourceLineNo">036</span>@InterfaceAudience.Public<a name="line.36"></a>
+<span class="sourceLineNo">037</span>public class ThrottlingException extends QuotaExceededException {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>  private static final long serialVersionUID = 1406576492085155743L;<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>  @InterfaceAudience.Public<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  public enum Type {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    NumRequestsExceeded,<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    RequestSizeExceeded,<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    NumReadRequestsExceeded,<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    NumWriteRequestsExceeded,<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    WriteSizeExceeded,<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    ReadSizeExceeded,<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  }<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>  private static final String[] MSG_TYPE = new String[] {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    "number of requests exceeded",<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    "request size limit exceeded",<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    "number of read requests exceeded",<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    "number of write requests exceeded",<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    "write size limit exceeded",<a name="line.55"></a>
+<span class="sourceLineNo">056</span>    "read size limit exceeded",<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  };<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>  private static final String MSG_WAIT = " - wait ";<a name="line.59"></a>
 <span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>  public ThrottlingException(String msg) {<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    super(msg);<a name="line.62"></a>
+<span class="sourceLineNo">061</span>  private long waitInterval;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private Type type;<a name="line.62"></a>
 <span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>    // Dirty workaround to get the information after<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    for (int i = 0; i &lt; MSG_TYPE.length; ++i) {<a name="line.66"></a>
-<span class="sourceLineNo">067</span>      int index = msg.indexOf(MSG_TYPE[i]);<a name="line.67"></a>
-<span class="sourceLineNo">068</span>      if (index &gt;= 0) {<a name="line.68"></a>
-<span class="sourceLineNo">069</span>        String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.69"></a>
-<span class="sourceLineNo">070</span>        type = Type.values()[i];<a name="line.70"></a>
-<span class="sourceLineNo">071</span>        waitInterval = timeFromString(waitTimeStr);<a name="line.71"></a>
-<span class="sourceLineNo">072</span>        break;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>      }<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    }<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  public ThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    super(msg);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    this.waitInterval = waitInterval;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    this.type = type;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  }<a name="line.81"></a>
-<span class="sourceLineNo">082</span><a name="line.82"></a>
-<span class="sourceLineNo">083</span>  public Type getType() {<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    return this.type;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  }<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  public long getWaitInterval() {<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    return this.waitInterval;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>  public static void throwNumRequestsExceeded(final long waitInterval)<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      throws ThrottlingException {<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      throws ThrottlingException {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  }<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>  public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      throws ThrottlingException {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>  }<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      throws ThrottlingException {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  }<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  public static void throwWriteSizeExceeded(final long waitInterval)<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      throws ThrottlingException {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>  public static void throwReadSizeExceeded(final long waitInterval)<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      throws ThrottlingException {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  }<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>  private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      throws ThrottlingException {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + formatTime(waitInterval);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    throw new ThrottlingException(type, waitInterval, msg);<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>  public static String formatTime(long timeDiff) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    StringBuilder buf = new StringBuilder();<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    long hours = timeDiff / (60*60*1000);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    long rem = (timeDiff % (60*60*1000));<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    long minutes =  rem / (60*1000);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    rem = rem % (60*1000);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    float seconds = rem / 1000.0f;<a name="line.133"></a>
-<span class="sourceLineNo">134</span><a name="line.134"></a>
-<span class="sourceLineNo">135</span>    if (hours != 0){<a name="line.135"></a>
-<span class="sourceLineNo">136</span>      buf.append(hours);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      buf.append("hrs, ");<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    if (minutes != 0){<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      buf.append(minutes);<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      buf.append("mins, ");<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    }<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    buf.append(String.format("%.2fsec", seconds));<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    return buf.toString();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  }<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>  private static long timeFromString(String timeDiff) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    Pattern[] patterns = new Pattern[] {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec")<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    };<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>    for (int i = 0; i &lt; patterns.length; ++i) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      Matcher m = patterns[i].matcher(timeDiff);<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      if (m.find()) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        if (i &gt; 0) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>          time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.159"></a>
-<span class="sourceLineNo">160</span>        }<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        if (i &gt; 1) {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>          time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.162"></a>
+<span class="sourceLineNo">064</span>  public ThrottlingException(String msg) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    super(msg);<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>    // Dirty workaround to get the information after<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    for (int i = 0; i &lt; MSG_TYPE.length; ++i) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>      int index = msg.indexOf(MSG_TYPE[i]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      if (index &gt;= 0) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        type = Type.values()[i];<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        waitInterval = timeFromString(waitTimeStr);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        break;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      }<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    }<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>  public ThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    super(msg);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    this.waitInterval = waitInterval;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    this.type = type;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  }<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  public Type getType() {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    return this.type;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>  public long getWaitInterval() {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    return this.waitInterval;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>  public static void throwNumRequestsExceeded(final long waitInterval)<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      throws ThrottlingException {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>  public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      throws ThrottlingException {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      throws ThrottlingException {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      throws ThrottlingException {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>  public static void throwWriteSizeExceeded(final long waitInterval)<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      throws ThrottlingException {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>  public static void throwReadSizeExceeded(final long waitInterval)<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      throws ThrottlingException {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>  private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      throws ThrottlingException {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + formatTime(waitInterval);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    throw new ThrottlingException(type, waitInterval, msg);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span>  public static String formatTime(long timeDiff) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    StringBuilder buf = new StringBuilder();<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    long hours = timeDiff / (60*60*1000);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    long rem = (timeDiff % (60*60*1000));<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    long minutes =  rem / (60*1000);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    rem = rem % (60*1000);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    float seconds = rem / 1000.0f;<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>    if (hours != 0){<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      buf.append(hours);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      buf.append("hrs, ");<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    if (minutes != 0){<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      buf.append(minutes);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      buf.append("mins, ");<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    buf.append(String.format("%.2fsec", seconds));<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    return buf.toString();<a name="line.147"></a>
+<span class="sourceLineNo">148</span>  }<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>  private static long timeFromString(String timeDiff) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    Pattern[] patterns = new Pattern[] {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec")<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    };<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>    for (int i = 0; i &lt; patterns.length; ++i) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      Matcher m = patterns[i].matcher(timeDiff);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      if (m.find()) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        if (i &gt; 0) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>          time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.162"></a>
 <span class="sourceLineNo">163</span>        }<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        return time;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      }<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>    return -1;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>}<a name="line.170"></a>
+<span class="sourceLineNo">164</span>        if (i &gt; 1) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>          time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        return time;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>    return -1;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>  }<a name="line.172"></a>
+<span class="sourceLineNo">173</span>}<a name="line.173"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index 78c268a..f69adc9 100644
--- a/book.html
+++ b/book.html
@@ -37715,7 +37715,7 @@ The server will return cellblocks compressed using this same compressor as long
 <div id="footer">
 <div id="footer-text">
 Version 3.0.0-SNAPSHOT<br>
-Last updated 2018-04-16 14:29:50 UTC
+Last updated 2018-04-17 14:29:51 UTC
 </div>
 </div>
 </body>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index 80b9771..e289fe0 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -306,7 +306,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index fa02e08..c36b6da 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -281,10 +281,10 @@
 <th><img src="images/icon_warning_sml.gif" alt="" />&#160;Warnings</th>
 <th><img src="images/icon_error_sml.gif" alt="" />&#160;Errors</th></tr>
 <tr class="b">
-<td>3601</td>
+<td>3604</td>
 <td>0</td>
 <td>0</td>
-<td>15869</td></tr></table></div>
+<td>15863</td></tr></table></div>
 <div class="section">
 <h2><a name="Files"></a>Files</h2>
 <table border="0" class="table table-striped">
@@ -1887,7 +1887,7 @@
 <td><a href="#org.apache.hadoop.hbase.client.TestMetaCache.java">org/apache/hadoop/hbase/client/TestMetaCache.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>13</td></tr>
+<td>7</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestMetricsConnection.java">org/apache/hadoop/hbase/client/TestMetricsConnection.java</a></td>
 <td>0</td>
@@ -10315,19 +10315,19 @@
 <li>caseIndent: <tt>&quot;2&quot;</tt></li>
 <li>basicOffset: <tt>&quot;2&quot;</tt></li>
 <li>lineWrappingIndentation: <tt>&quot;2&quot;</tt></li></ul></td>
-<td>4633</td>
+<td>4627</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td>javadoc</td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#JavadocTagContinuationIndentation">JavadocTagContinuationIndentation</a>
 <ul>
 <li>offset: <tt>&quot;2&quot;</tt></li></ul></td>
-<td>798</td>
+<td>784</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#NonEmptyAtclauseDescription">NonEmptyAtclauseDescription</a></td>
-<td>3831</td>
+<td>3845</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td>misc</td>
@@ -14536,7 +14536,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 26 has parse error. Missed HTML close tag 'arg'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>44</td></tr></table></div>
 <div class="section">
@@ -15172,7 +15172,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 4 has parse error. Missed HTML close tag 'pre'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>59</td></tr></table></div>
 <div class="section">
@@ -16927,7 +16927,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 19 has parse error. Details: no viable alternative at input '&lt;code&gt;\n   *   List&lt;Future&lt;' while parsing HTML_TAG</td>
 <td>167</td></tr></table></div>
 <div class="section">
@@ -19849,7 +19849,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 2 has parse error. Unrecognized error from ANTLR parser: null</td>
 <td>83</td></tr>
 <tr class="a">
@@ -31052,42 +31052,6 @@
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'block' child have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>196</td></tr>
-<tr class="b">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>indentation</td>
-<td>Indentation</td>
-<td>'block' child have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>197</td></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>indentation</td>
-<td>Indentation</td>
-<td>'block' child have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>198</td></tr>
-<tr class="b">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>indentation</td>
-<td>Indentation</td>
-<td>'block' child have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>199</td></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>indentation</td>
-<td>Indentation</td>
-<td>'block' child have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>200</td></tr>
-<tr class="b">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>indentation</td>
-<td>Indentation</td>
-<td>'block' child have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>201</td></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>indentation</td>
-<td>Indentation</td>
 <td>'block rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
 <td>202</td></tr>
 <tr class="b">
@@ -33832,7 +33796,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 37 has parse error. Details: no viable alternative at input '&lt;ColumnFamily,' while parsing HTML_ELEMENT</td>
 <td>29</td></tr></table></div>
 <div class="section">
@@ -50128,7 +50092,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 24 has parse error. Details: no viable alternative at input '&lt;key,' while parsing HTML_ELEMENT</td>
 <td>25</td></tr>
 <tr class="b">
@@ -53716,7 +53680,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 2 has parse error. Unrecognized error from ANTLR parser: null</td>
 <td>587</td></tr>
 <tr class="a">
@@ -73267,7 +73231,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 60 has parse error. Missed HTML close tag 'Comparable'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>29</td></tr>
 <tr class="a">
@@ -77449,7 +77413,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 0 has parse error. Unrecognized error from ANTLR parser: null</td>
 <td>74</td></tr>
 <tr class="a">
@@ -87415,7 +87379,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 33 has parse error. Missed HTML close tag 'number'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>127</td></tr>
 <tr class="b">
@@ -94281,7 +94245,7 @@
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>57</td></tr></table></div>
+<td>79</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.TestReplicationDisableInactivePeer.java">org/apache/hadoop/hbase/replication/TestReplicationDisableInactivePeer.java</h3>
 <table border="0" class="table table-striped">
@@ -94326,43 +94290,43 @@
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 114).</td>
-<td>252</td></tr>
+<td>251</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 114).</td>
-<td>281</td></tr>
+<td>280</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 114).</td>
-<td>291</td></tr>
+<td>290</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 109).</td>
-<td>307</td></tr>
+<td>306</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 110).</td>
-<td>317</td></tr>
+<td>316</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 108).</td>
-<td>318</td></tr>
+<td>317</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
-<td>553</td></tr></table></div>
+<td>557</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.TestReplicationKillMasterRSCompressed.java">org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.java</h3>
 <table border="0" class="table table-striped">
@@ -115969,7 +115933,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 23 has parse error. Details: no viable alternative at input '&lt;expected,' while parsing HTML_ELEMENT</td>
 <td>143</td></tr>
 <tr class="a">
@@ -116173,7 +116137,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 78 has parse error. Details: no viable alternative at input '&lt;Object&gt;, Map&lt;String,' while parsing HTML_TAG</td>
 <td>33</td></tr>
 <tr class="a">
@@ -116773,7 +116737,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 35 has parse error. Missed HTML close tag 'index'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>823</td></tr>
 <tr class="b">
@@ -120580,7 +120544,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 58 has parse error. Details: no viable alternative at input '&lt;byte[' while parsing HTML_ELEMENT</td>
 <td>426</td></tr>
 <tr class="a">
@@ -123433,7 +123397,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index 3fecdff..b94c3ab 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -25,8 +25,8 @@ under the License.
     <language>en-us</language>
     <copyright>&#169;2007 - 2018 The Apache Software Foundation</copyright>
     <item>
-      <title>File: 3601,
-             Errors: 15869,
+      <title>File: 3604,
+             Errors: 15863,
              Warnings: 0,
              Infos: 0
       </title>
@@ -25330,6 +25330,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.quotas.RpcThrottlingException.java">org/apache/hadoop/hbase/quotas/RpcThrottlingException.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.master.ClusterSchemaException.java">org/apache/hadoop/hbase/master/ClusterSchemaException.java</a>
                 </td>
                 <td>
@@ -28746,6 +28760,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.replication.TestReplicationKillMasterRSWithSeparateOldWALs.java">org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.codec.TestKeyValueCodecWithTags.java">org/apache/hadoop/hbase/codec/TestKeyValueCodecWithTags.java</a>
                 </td>
                 <td>
@@ -35424,6 +35452,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.replication.TestReplicationKillSlaveRSWithSeparateOldWALs.java">org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.regionserver.MetricsRegionServerQuotaSource.java">org/apache/hadoop/hbase/regionserver/MetricsRegionServerQuotaSource.java</a>
                 </td>
                 <td>
@@ -42923,7 +42965,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  13
+                  7
                 </td>
               </tr>
                           <tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index 42f9d7f..7c73fc5 100644
--- a/coc.html
+++ b/coc.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Code of Conduct Policy
@@ -375,7 +375,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index 6ad6a29..fcb521f 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -440,7 +440,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index e441ca2..11a8b40 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -1105,7 +1105,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index dc88589..d5d7f8f 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -313,7 +313,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index e7c3bc5..3ede549 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -969,7 +969,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/allclasses-frame.html b/devapidocs/allclasses-frame.html
index 7965647..1adf635 100644
--- a/devapidocs/allclasses-frame.html
+++ b/devapidocs/allclasses-frame.html
@@ -2280,6 +2280,8 @@
 <li><a href="org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html" title="interface in org.apache.hadoop.hbase.ipc" target="classFrame"><span class="interfaceName">RpcServer.CallCleanup</span></a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/RpcServerFactory.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">RpcServerFactory</a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc" target="classFrame"><span class="interfaceName">RpcServerInterface</span></a></li>
+<li><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">RpcThrottlingException</a></li>
+<li><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">RpcThrottlingException.Type</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/RSDumpServlet.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">RSDumpServlet</a></li>
 <li><a href="org/apache/hadoop/hbase/rsgroup/RSGroupableBalancer.html" title="interface in org.apache.hadoop.hbase.rsgroup" target="classFrame"><span class="interfaceName">RSGroupableBalancer</span></a></li>
 <li><a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html" title="interface in org.apache.hadoop.hbase.rsgroup" target="classFrame"><span class="interfaceName">RSGroupAdmin</span></a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/devapidocs/allclasses-noframe.html b/devapidocs/allclasses-noframe.html
index 3ba57dc..37b4c60 100644
--- a/devapidocs/allclasses-noframe.html
+++ b/devapidocs/allclasses-noframe.html
@@ -2280,6 +2280,8 @@
 <li><a href="org/apache/hadoop/hbase/ipc/RpcServer.CallCleanup.html" title="interface in org.apache.hadoop.hbase.ipc"><span class="interfaceName">RpcServer.CallCleanup</span></a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/RpcServerFactory.html" title="class in org.apache.hadoop.hbase.ipc">RpcServerFactory</a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc"><span class="interfaceName">RpcServerInterface</span></a></li>
+<li><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></li>
+<li><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/RSDumpServlet.html" title="class in org.apache.hadoop.hbase.regionserver">RSDumpServlet</a></li>
 <li><a href="org/apache/hadoop/hbase/rsgroup/RSGroupableBalancer.html" title="interface in org.apache.hadoop.hbase.rsgroup"><span class="interfaceName">RSGroupableBalancer</span></a></li>
 <li><a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html" title="interface in org.apache.hadoop.hbase.rsgroup"><span class="interfaceName">RSGroupAdmin</span></a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 4432fe6..c8f33fe 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3768,21 +3768,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Mon Apr 16 14:39:11 UTC 2018"</code></td>
+<td class="colLast"><code>"Tue Apr 17 14:39:15 UTC 2018"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#revision">revision</a></code></td>
-<td class="colLast"><code>"773aff90fdf9edf4687b373d1c7ba859d166a437"</code></td>
+<td class="colLast"><code>"42d5447cfbc593becfc26684e03f482eb3a0fc49"</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.srcChecksum">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"83e5500271237f8b8d44991e5fb13ecd"</code></td>
+<td class="colLast"><code>"7216e99e4e2f243f8ca1e9d09be1a120"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">
@@ -17224,6 +17224,25 @@
 </li>
 <li class="blockList">
 <table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.quotas.RpcThrottlingException.MSG_WAIT">
+<!--   -->
+</a><code>private&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#MSG_WAIT">MSG_WAIT</a></code></td>
+<td class="colLast"><code>" - wait "</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
 <caption><span>org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html" title="class in org.apache.hadoop.hbase.quotas">SnapshotQuotaObserverChore</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/deprecated-list.html
----------------------------------------------------------------------
diff --git a/devapidocs/deprecated-list.html b/devapidocs/deprecated-list.html
index 92ff3b6..c62f7e1 100644
--- a/devapidocs/deprecated-list.html
+++ b/devapidocs/deprecated-list.html
@@ -288,6 +288,11 @@
 <div class="block"><span class="deprecationComment">use <a href="org/apache/hadoop/hbase/client/RowTooBigException.html" title="class in org.apache.hadoop.hbase.client"><code>RowTooBigException</code></a> instead.</span></div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas.ThrottlingException</a>
+<div class="block"><span class="deprecationComment">replaced by <a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>


[03/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html
index c8c6963..0ab1795 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html
@@ -63,373 +63,393 @@
 <span class="sourceLineNo">055</span>import org.junit.ClassRule;<a name="line.55"></a>
 <span class="sourceLineNo">056</span>import org.junit.Test;<a name="line.56"></a>
 <span class="sourceLineNo">057</span>import org.junit.experimental.categories.Category;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.slf4j.Logger;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.slf4j.LoggerFactory;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>@Category({ ReplicationTests.class, LargeTests.class })<a name="line.61"></a>
-<span class="sourceLineNo">062</span>public class TestReplicationSmallTests extends TestReplicationBase {<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>  @ClassRule<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.65"></a>
-<span class="sourceLineNo">066</span>      HBaseClassTestRule.forClass(TestReplicationSmallTests.class);<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span>  private static final Logger LOG = LoggerFactory.getLogger(TestReplicationSmallTests.class);<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  private static final String PEER_ID = "2";<a name="line.69"></a>
+<span class="sourceLineNo">058</span>import org.junit.runner.RunWith;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.junit.runners.Parameterized;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.junit.runners.Parameterized.Parameter;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.junit.runners.Parameterized.Parameters;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.slf4j.Logger;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.slf4j.LoggerFactory;<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableList;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>@RunWith(Parameterized.class)<a name="line.67"></a>
+<span class="sourceLineNo">068</span>@Category({ ReplicationTests.class, LargeTests.class })<a name="line.68"></a>
+<span class="sourceLineNo">069</span>public class TestReplicationSmallTests extends TestReplicationBase {<a name="line.69"></a>
 <span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>  @Before<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  public void setUp() throws Exception {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    cleanUp();<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  }<a name="line.74"></a>
-<span class="sourceLineNo">075</span><a name="line.75"></a>
-<span class="sourceLineNo">076</span>  /**<a name="line.76"></a>
-<span class="sourceLineNo">077</span>   * Verify that version and column delete marker types are replicated correctly.<a name="line.77"></a>
-<span class="sourceLineNo">078</span>   */<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  @Test<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  public void testDeleteTypes() throws Exception {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    LOG.info("testDeleteTypes");<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    final byte[] v1 = Bytes.toBytes("v1");<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    final byte[] v2 = Bytes.toBytes("v2");<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    final byte[] v3 = Bytes.toBytes("v3");<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    htable1 = utility1.getConnection().getTable(tableName);<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>    long t = EnvironmentEdgeManager.currentTime();<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    // create three versions for "row"<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    Put put = new Put(row);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    put.addColumn(famName, row, t, v1);<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    htable1.put(put);<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>    put = new Put(row);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    put.addColumn(famName, row, t + 1, v2);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    htable1.put(put);<a name="line.95"></a>
-<span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span>    put = new Put(row);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    put.addColumn(famName, row, t + 2, v3);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    htable1.put(put);<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>    Get get = new Get(row);<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    get.readAllVersions();<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      if (i == NB_RETRIES - 1) {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>        fail("Waited too much time for put replication");<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      }<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      Result res = htable2.get(get);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      if (res.size() &lt; 3) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>        LOG.info("Rows not available");<a name="line.109"></a>
-<span class="sourceLineNo">110</span>        Thread.sleep(SLEEP_TIME);<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      } else {<a name="line.111"></a>
-<span class="sourceLineNo">112</span>        assertArrayEquals(CellUtil.cloneValue(res.rawCells()[0]), v3);<a name="line.112"></a>
-<span class="sourceLineNo">113</span>        assertArrayEquals(CellUtil.cloneValue(res.rawCells()[1]), v2);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>        assertArrayEquals(CellUtil.cloneValue(res.rawCells()[2]), v1);<a name="line.114"></a>
-<span class="sourceLineNo">115</span>        break;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    }<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    // place a version delete marker (delete last version)<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    Delete d = new Delete(row);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    d.addColumn(famName, row, t);<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    htable1.delete(d);<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span>    get = new Get(row);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    get.readAllVersions();<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      if (i == NB_RETRIES - 1) {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>        fail("Waited too much time for put replication");<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      }<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      Result res = htable2.get(get);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>      if (res.size() &gt; 2) {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>        LOG.info("Version not deleted");<a name="line.131"></a>
-<span class="sourceLineNo">132</span>        Thread.sleep(SLEEP_TIME);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      } else {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>        assertArrayEquals(CellUtil.cloneValue(res.rawCells()[0]), v3);<a name="line.134"></a>
-<span class="sourceLineNo">135</span>        assertArrayEquals(CellUtil.cloneValue(res.rawCells()[1]), v2);<a name="line.135"></a>
-<span class="sourceLineNo">136</span>        break;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      }<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span><a name="line.139"></a>
-<span class="sourceLineNo">140</span>    // place a column delete marker<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    d = new Delete(row);<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    d.addColumns(famName, row, t + 2);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    htable1.delete(d);<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>    // now *both* of the remaining version should be deleted<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    // at the replica<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    get = new Get(row);<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      if (i == NB_RETRIES - 1) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>        fail("Waited too much time for del replication");<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      }<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      Result res = htable2.get(get);<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      if (res.size() &gt;= 1) {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>        LOG.info("Rows not deleted");<a name="line.154"></a>
-<span class="sourceLineNo">155</span>        Thread.sleep(SLEEP_TIME);<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      } else {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        break;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
-<span class="sourceLineNo">160</span>  }<a name="line.160"></a>
-<span class="sourceLineNo">161</span><a name="line.161"></a>
-<span class="sourceLineNo">162</span>  /**<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   * Add a row, check it's replicated, delete it, check's gone<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   */<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  @Test<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public void testSimplePutDelete() throws Exception {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    LOG.info("testSimplePutDelete");<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    runSimplePutDeleteTest();<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  }<a name="line.169"></a>
-<span class="sourceLineNo">170</span><a name="line.170"></a>
-<span class="sourceLineNo">171</span>  /**<a name="line.171"></a>
-<span class="sourceLineNo">172</span>   * Try a small batch upload using the write buffer, check it's replicated<a name="line.172"></a>
-<span class="sourceLineNo">173</span>   */<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  @Test<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public void testSmallBatch() throws Exception {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    LOG.info("testSmallBatch");<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    runSmallBatchTest();<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  /**<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   * Test disable/enable replication, trying to insert, make sure nothing's replicated, enable it,<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * the insert should be replicated<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   */<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  @Test<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  public void testDisableEnable() throws Exception {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    // Test disabling replication<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    hbaseAdmin.disableReplicationPeer(PEER_ID);<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>    byte[] rowkey = Bytes.toBytes("disable enable");<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    Put put = new Put(rowkey);<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    put.addColumn(famName, row, row);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    htable1.put(put);<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>    Get get = new Get(rowkey);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      Result res = htable2.get(get);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      if (res.size() &gt;= 1) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>        fail("Replication wasn't disabled");<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      } else {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        LOG.info("Row not replicated, let's wait a bit more...");<a name="line.200"></a>
-<span class="sourceLineNo">201</span>        Thread.sleep(SLEEP_TIME);<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      }<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    }<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>    // Test enable replication<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    hbaseAdmin.enableReplicationPeer(PEER_ID);<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      Result res = htable2.get(get);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      if (res.isEmpty()) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        LOG.info("Row not available");<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        Thread.sleep(SLEEP_TIME);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      } else {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>        assertArrayEquals(row, res.value());<a name="line.214"></a>
-<span class="sourceLineNo">215</span>        return;<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      }<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    }<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    fail("Waited too much time for put replication");<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  }<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>  /**<a name="line.221"></a>
-<span class="sourceLineNo">222</span>   * Integration test for TestReplicationAdmin, removes and re-add a peer cluster<a name="line.222"></a>
-<span class="sourceLineNo">223</span>   */<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  @Test<a name="line.224"></a>
-<span class="sourceLineNo">225</span>  public void testAddAndRemoveClusters() throws Exception {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    LOG.info("testAddAndRemoveClusters");<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    hbaseAdmin.removeReplicationPeer(PEER_ID);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    Thread.sleep(SLEEP_TIME);<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    byte[] rowKey = Bytes.toBytes("Won't be replicated");<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    Put put = new Put(rowKey);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    put.addColumn(famName, row, row);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    htable1.put(put);<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>    Get get = new Get(rowKey);<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      if (i == NB_RETRIES - 1) {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        break;<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      }<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      Result res = htable2.get(get);<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      if (res.size() &gt;= 1) {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        fail("Not supposed to be replicated");<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      } else {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        LOG.info("Row not replicated, let's wait a bit more...");<a name="line.243"></a>
-<span class="sourceLineNo">244</span>        Thread.sleep(SLEEP_TIME);<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      }<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    }<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    ReplicationPeerConfig rpc =<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        ReplicationPeerConfig.newBuilder().setClusterKey(utility2.getClusterKey()).build();<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    hbaseAdmin.addReplicationPeer(PEER_ID, rpc);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    Thread.sleep(SLEEP_TIME);<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    rowKey = Bytes.toBytes("do rep");<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    put = new Put(rowKey);<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    put.addColumn(famName, row, row);<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    LOG.info("Adding new row");<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    htable1.put(put);<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    get = new Get(rowKey);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      if (i == NB_RETRIES - 1) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>        fail("Waited too much time for put replication");<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      }<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      Result res = htable2.get(get);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      if (res.isEmpty()) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>        LOG.info("Row not available");<a name="line.264"></a>
-<span class="sourceLineNo">265</span>        Thread.sleep(SLEEP_TIME * i);<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      } else {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>        assertArrayEquals(row, res.value());<a name="line.267"></a>
-<span class="sourceLineNo">268</span>        break;<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      }<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  /**<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   * Do a more intense version testSmallBatch, one that will trigger wal rolling and other<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   * non-trivial code paths<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   */<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  @Test<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  public void testLoading() throws Exception {<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    LOG.info("Writing out rows to table1 in testLoading");<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    List&lt;Put&gt; puts = new ArrayList&lt;&gt;(NB_ROWS_IN_BIG_BATCH);<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    for (int i = 0; i &lt; NB_ROWS_IN_BIG_BATCH; i++) {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      Put put = new Put(Bytes.toBytes(i));<a name="line.282"></a>
-<span class="sourceLineNo">283</span>      put.addColumn(famName, row, row);<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      puts.add(put);<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    }<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    // The puts will be iterated through and flushed only when the buffer<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    // size is reached.<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    htable1.put(puts);<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>    Scan scan = new Scan();<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>    ResultScanner scanner = htable1.getScanner(scan);<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    Result[] res = scanner.next(NB_ROWS_IN_BIG_BATCH);<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    scanner.close();<a name="line.294"></a>
-<span class="sourceLineNo">295</span><a name="line.295"></a>
-<span class="sourceLineNo">296</span>    assertEquals(NB_ROWS_IN_BIG_BATCH, res.length);<a name="line.296"></a>
-<span class="sourceLineNo">297</span><a name="line.297"></a>
-<span class="sourceLineNo">298</span>    LOG.info("Looking in table2 for replicated rows in testLoading");<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    long start = System.currentTimeMillis();<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    // Retry more than NB_RETRIES. As it was, retries were done in 5 seconds and we'd fail<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    // sometimes.<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    final long retries = NB_RETRIES * 10;<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    for (int i = 0; i &lt; retries; i++) {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      scan = new Scan();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      scanner = htable2.getScanner(scan);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>      res = scanner.next(NB_ROWS_IN_BIG_BATCH);<a name="line.306"></a>
-<span class="sourceLineNo">307</span>      scanner.close();<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      if (res.length != NB_ROWS_IN_BIG_BATCH) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>        if (i == retries - 1) {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>          int lastRow = -1;<a name="line.310"></a>
-<span class="sourceLineNo">311</span>          for (Result result : res) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>            int currentRow = Bytes.toInt(result.getRow());<a name="line.312"></a>
-<span class="sourceLineNo">313</span>            for (int row = lastRow + 1; row &lt; currentRow; row++) {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>              LOG.error("Row missing: " + row);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>            }<a name="line.315"></a>
-<span class="sourceLineNo">316</span>            lastRow = currentRow;<a name="line.316"></a>
-<span class="sourceLineNo">317</span>          }<a name="line.317"></a>
-<span class="sourceLineNo">318</span>          LOG.error("Last row: " + lastRow);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>          fail("Waited too much time for normal batch replication, " + res.length + " instead of " +<a name="line.319"></a>
-<span class="sourceLineNo">320</span>            NB_ROWS_IN_BIG_BATCH + "; waited=" + (System.currentTimeMillis() - start) + "ms");<a name="line.320"></a>
-<span class="sourceLineNo">321</span>        } else {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>          LOG.info("Only got " + res.length + " rows... retrying");<a name="line.322"></a>
-<span class="sourceLineNo">323</span>          Thread.sleep(SLEEP_TIME);<a name="line.323"></a>
-<span class="sourceLineNo">324</span>        }<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      } else {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>        break;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      }<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  }<a name="line.329"></a>
-<span class="sourceLineNo">330</span><a name="line.330"></a>
-<span class="sourceLineNo">331</span>  /**<a name="line.331"></a>
-<span class="sourceLineNo">332</span>   * Test for HBASE-8663<a name="line.332"></a>
-<span class="sourceLineNo">333</span>   * &lt;p&gt;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>   * Create two new Tables with colfamilies enabled for replication then run<a name="line.334"></a>
-<span class="sourceLineNo">335</span>   * ReplicationAdmin.listReplicated(). Finally verify the table:colfamilies. Note:<a name="line.335"></a>
-<span class="sourceLineNo">336</span>   * TestReplicationAdmin is a better place for this testing but it would need mocks.<a name="line.336"></a>
-<span class="sourceLineNo">337</span>   */<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  @Test<a name="line.338"></a>
-<span class="sourceLineNo">339</span>  public void testVerifyListReplicatedTable() throws Exception {<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    LOG.info("testVerifyListReplicatedTable");<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>    final String tName = "VerifyListReplicated_";<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    final String colFam = "cf1";<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    final int numOfTables = 3;<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>    Admin hadmin = utility1.getAdmin();<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span>    // Create Tables<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    for (int i = 0; i &lt; numOfTables; i++) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      hadmin.createTable(TableDescriptorBuilder.newBuilder(TableName.valueOf(tName + i))<a name="line.350"></a>
-<span class="sourceLineNo">351</span>          .setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(colFam))<a name="line.351"></a>
-<span class="sourceLineNo">352</span>              .setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build())<a name="line.352"></a>
-<span class="sourceLineNo">353</span>          .build());<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    }<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span>    // verify the result<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    List&lt;TableCFs&gt; replicationColFams = hbaseAdmin.listReplicatedTableCFs();<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    int[] match = new int[numOfTables]; // array of 3 with init value of zero<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>    for (int i = 0; i &lt; replicationColFams.size(); i++) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      TableCFs replicationEntry = replicationColFams.get(i);<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      String tn = replicationEntry.getTable().getNameAsString();<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      if (tn.startsWith(tName) &amp;&amp; replicationEntry.getColumnFamilyMap().containsKey(colFam)) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>        int m = Integer.parseInt(tn.substring(tn.length() - 1)); // get the last digit<a name="line.364"></a>
-<span class="sourceLineNo">365</span>        match[m]++; // should only increase once<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      }<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>    // check the matching result<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    for (int i = 0; i &lt; match.length; i++) {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      assertTrue("listReplicated() does not match table " + i, (match[i] == 1));<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>    // drop tables<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    for (int i = 0; i &lt; numOfTables; i++) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      TableName tableName = TableName.valueOf(tName + i);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      hadmin.disableTable(tableName);<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      hadmin.deleteTable(tableName);<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    }<a name="line.379"></a>
-<span class="sourceLineNo">380</span><a name="line.380"></a>
-<span class="sourceLineNo">381</span>    hadmin.close();<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>  /**<a name="line.384"></a>
-<span class="sourceLineNo">385</span>   * Test for HBase-15259 WALEdits under replay will also be replicated<a name="line.385"></a>
-<span class="sourceLineNo">386</span>   */<a name="line.386"></a>
-<span class="sourceLineNo">387</span>  @Test<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  public void testReplicationInReplay() throws Exception {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    final TableName tableName = htable1.getName();<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>    HRegion region = utility1.getMiniHBaseCluster().getRegions(tableName).get(0);<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    RegionInfo hri = region.getRegionInfo();<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    NavigableMap&lt;byte[], Integer&gt; scopes = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    for (byte[] fam : htable1.getDescriptor().getColumnFamilyNames()) {<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      scopes.put(fam, 1);<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    }<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    final MultiVersionConcurrencyControl mvcc = new MultiVersionConcurrencyControl();<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    int index = utility1.getMiniHBaseCluster().getServerWith(hri.getRegionName());<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    WAL wal = utility1.getMiniHBaseCluster().getRegionServer(index).getWAL(region.getRegionInfo());<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    final byte[] rowName = Bytes.toBytes("testReplicationInReplay");<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    final byte[] qualifier = Bytes.toBytes("q");<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    final byte[] value = Bytes.toBytes("v");<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    WALEdit edit = new WALEdit(true);<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    long now = EnvironmentEdgeManager.currentTime();<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    edit.add(new KeyValue(rowName, famName, qualifier, now, value));<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    WALKeyImpl walKey = new WALKeyImpl(hri.getEncodedNameAsBytes(), tableName, now, mvcc, scopes);<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    wal.append(hri, walKey, edit, true);<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    wal.sync();<a name="line.408"></a>
-<span class="sourceLineNo">409</span><a name="line.409"></a>
-<span class="sourceLineNo">410</span>    Get get = new Get(rowName);<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      if (i == NB_RETRIES - 1) {<a name="line.412"></a>
-<span class="sourceLineNo">413</span>        break;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      }<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      Result res = htable2.get(get);<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      if (res.size() &gt;= 1) {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        fail("Not supposed to be replicated for " + Bytes.toString(res.getRow()));<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      } else {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>        LOG.info("Row not replicated, let's wait a bit more...");<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        Thread.sleep(SLEEP_TIME);<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      }<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    }<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  }<a name="line.423"></a>
-<span class="sourceLineNo">424</span>}<a name="line.424"></a>
+<span class="sourceLineNo">071</span>  @ClassRule<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      HBaseClassTestRule.forClass(TestReplicationSmallTests.class);<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>  private static final Logger LOG = LoggerFactory.getLogger(TestReplicationSmallTests.class);<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  private static final String PEER_ID = "2";<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>  @Parameter<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  public boolean serialPeer;<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>  @Override<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  protected boolean isSerialPeer() {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    return serialPeer;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  }<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  @Parameters(name = "{index}: serialPeer={0}")<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  public static List&lt;Boolean&gt; parameters() {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    return ImmutableList.of(true, false);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>  @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  public void setUp() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    cleanUp();<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  /**<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   * Verify that version and column delete marker types are replicated correctly.<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   */<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  @Test<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  public void testDeleteTypes() throws Exception {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    LOG.info("testDeleteTypes");<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    final byte[] v1 = Bytes.toBytes("v1");<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    final byte[] v2 = Bytes.toBytes("v2");<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    final byte[] v3 = Bytes.toBytes("v3");<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    htable1 = utility1.getConnection().getTable(tableName);<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>    long t = EnvironmentEdgeManager.currentTime();<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    // create three versions for "row"<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    Put put = new Put(row);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    put.addColumn(famName, row, t, v1);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    htable1.put(put);<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>    put = new Put(row);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    put.addColumn(famName, row, t + 1, v2);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    htable1.put(put);<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>    put = new Put(row);<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    put.addColumn(famName, row, t + 2, v3);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    htable1.put(put);<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>    Get get = new Get(row);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    get.readAllVersions();<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      if (i == NB_RETRIES - 1) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        fail("Waited too much time for put replication");<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      Result res = htable2.get(get);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      if (res.size() &lt; 3) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        LOG.info("Rows not available");<a name="line.129"></a>
+<span class="sourceLineNo">130</span>        Thread.sleep(SLEEP_TIME);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      } else {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        assertArrayEquals(CellUtil.cloneValue(res.rawCells()[0]), v3);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        assertArrayEquals(CellUtil.cloneValue(res.rawCells()[1]), v2);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        assertArrayEquals(CellUtil.cloneValue(res.rawCells()[2]), v1);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        break;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      }<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    }<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    // place a version delete marker (delete last version)<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    Delete d = new Delete(row);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    d.addColumn(famName, row, t);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    htable1.delete(d);<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>    get = new Get(row);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    get.readAllVersions();<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      if (i == NB_RETRIES - 1) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        fail("Waited too much time for put replication");<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      }<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      Result res = htable2.get(get);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      if (res.size() &gt; 2) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        LOG.info("Version not deleted");<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        Thread.sleep(SLEEP_TIME);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      } else {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        assertArrayEquals(CellUtil.cloneValue(res.rawCells()[0]), v3);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        assertArrayEquals(CellUtil.cloneValue(res.rawCells()[1]), v2);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        break;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      }<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    }<a name="line.158"></a>
+<span class="sourceLineNo">159</span><a name="line.159"></a>
+<span class="sourceLineNo">160</span>    // place a column delete marker<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    d = new Delete(row);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    d.addColumns(famName, row, t + 2);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    htable1.delete(d);<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>    // now *both* of the remaining version should be deleted<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    // at the replica<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    get = new Get(row);<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      if (i == NB_RETRIES - 1) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        fail("Waited too much time for del replication");<a name="line.170"></a>
+<span class="sourceLineNo">171</span>      }<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      Result res = htable2.get(get);<a name="line.172"></a>
+<span class="sourceLineNo">173</span>      if (res.size() &gt;= 1) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        LOG.info("Rows not deleted");<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        Thread.sleep(SLEEP_TIME);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      } else {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        break;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>  }<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>  /**<a name="line.182"></a>
+<span class="sourceLineNo">183</span>   * Add a row, check it's replicated, delete it, check's gone<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   */<a name="line.184"></a>
+<span class="sourceLineNo">185</span>  @Test<a name="line.185"></a>
+<span class="sourceLineNo">186</span>  public void testSimplePutDelete() throws Exception {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    LOG.info("testSimplePutDelete");<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    runSimplePutDeleteTest();<a name="line.188"></a>
+<span class="sourceLineNo">189</span>  }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>  /**<a name="line.191"></a>
+<span class="sourceLineNo">192</span>   * Try a small batch upload using the write buffer, check it's replicated<a name="line.192"></a>
+<span class="sourceLineNo">193</span>   */<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  @Test<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public void testSmallBatch() throws Exception {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    LOG.info("testSmallBatch");<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    runSmallBatchTest();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>  }<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>  /**<a name="line.200"></a>
+<span class="sourceLineNo">201</span>   * Test disable/enable replication, trying to insert, make sure nothing's replicated, enable it,<a name="line.201"></a>
+<span class="sourceLineNo">202</span>   * the insert should be replicated<a name="line.202"></a>
+<span class="sourceLineNo">203</span>   */<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  @Test<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  public void testDisableEnable() throws Exception {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    // Test disabling replication<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    hbaseAdmin.disableReplicationPeer(PEER_ID);<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>    byte[] rowkey = Bytes.toBytes("disable enable");<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    Put put = new Put(rowkey);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    put.addColumn(famName, row, row);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    htable1.put(put);<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>    Get get = new Get(rowkey);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>      Result res = htable2.get(get);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      if (res.size() &gt;= 1) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        fail("Replication wasn't disabled");<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      } else {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        LOG.info("Row not replicated, let's wait a bit more...");<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        Thread.sleep(SLEEP_TIME);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>    // Test enable replication<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    hbaseAdmin.enableReplicationPeer(PEER_ID);<a name="line.226"></a>
+<span class="sourceLineNo">227</span><a name="line.227"></a>
+<span class="sourceLineNo">228</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      Result res = htable2.get(get);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      if (res.isEmpty()) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        LOG.info("Row not available");<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        Thread.sleep(SLEEP_TIME);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      } else {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        assertArrayEquals(row, res.value());<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        return;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    }<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    fail("Waited too much time for put replication");<a name="line.238"></a>
+<span class="sourceLineNo">239</span>  }<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>  /**<a name="line.241"></a>
+<span class="sourceLineNo">242</span>   * Integration test for TestReplicationAdmin, removes and re-add a peer cluster<a name="line.242"></a>
+<span class="sourceLineNo">243</span>   */<a name="line.243"></a>
+<span class="sourceLineNo">244</span>  @Test<a name="line.244"></a>
+<span class="sourceLineNo">245</span>  public void testAddAndRemoveClusters() throws Exception {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    LOG.info("testAddAndRemoveClusters");<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    hbaseAdmin.removeReplicationPeer(PEER_ID);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    Thread.sleep(SLEEP_TIME);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    byte[] rowKey = Bytes.toBytes("Won't be replicated");<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    Put put = new Put(rowKey);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    put.addColumn(famName, row, row);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    htable1.put(put);<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>    Get get = new Get(rowKey);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      if (i == NB_RETRIES - 1) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        break;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      }<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      Result res = htable2.get(get);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      if (res.size() &gt;= 1) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>        fail("Not supposed to be replicated");<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      } else {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>        LOG.info("Row not replicated, let's wait a bit more...");<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        Thread.sleep(SLEEP_TIME);<a name="line.264"></a>
+<span class="sourceLineNo">265</span>      }<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    ReplicationPeerConfig rpc =<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        ReplicationPeerConfig.newBuilder().setClusterKey(utility2.getClusterKey()).build();<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    hbaseAdmin.addReplicationPeer(PEER_ID, rpc);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    Thread.sleep(SLEEP_TIME);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    rowKey = Bytes.toBytes("do rep");<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    put = new Put(rowKey);<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    put.addColumn(famName, row, row);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    LOG.info("Adding new row");<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    htable1.put(put);<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>    get = new Get(rowKey);<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      if (i == NB_RETRIES - 1) {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        fail("Waited too much time for put replication");<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      }<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      Result res = htable2.get(get);<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      if (res.isEmpty()) {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        LOG.info("Row not available");<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        Thread.sleep(SLEEP_TIME * i);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      } else {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        assertArrayEquals(row, res.value());<a name="line.287"></a>
+<span class="sourceLineNo">288</span>        break;<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      }<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    }<a name="line.290"></a>
+<span class="sourceLineNo">291</span>  }<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>  /**<a name="line.293"></a>
+<span class="sourceLineNo">294</span>   * Do a more intense version testSmallBatch, one that will trigger wal rolling and other<a name="line.294"></a>
+<span class="sourceLineNo">295</span>   * non-trivial code paths<a name="line.295"></a>
+<span class="sourceLineNo">296</span>   */<a name="line.296"></a>
+<span class="sourceLineNo">297</span>  @Test<a name="line.297"></a>
+<span class="sourceLineNo">298</span>  public void testLoading() throws Exception {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    LOG.info("Writing out rows to table1 in testLoading");<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    List&lt;Put&gt; puts = new ArrayList&lt;&gt;(NB_ROWS_IN_BIG_BATCH);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    for (int i = 0; i &lt; NB_ROWS_IN_BIG_BATCH; i++) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      Put put = new Put(Bytes.toBytes(i));<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      put.addColumn(famName, row, row);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      puts.add(put);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    // The puts will be iterated through and flushed only when the buffer<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    // size is reached.<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    htable1.put(puts);<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span>    Scan scan = new Scan();<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>    ResultScanner scanner = htable1.getScanner(scan);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    Result[] res = scanner.next(NB_ROWS_IN_BIG_BATCH);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    scanner.close();<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>    assertEquals(NB_ROWS_IN_BIG_BATCH, res.length);<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>    LOG.info("Looking in table2 for replicated rows in testLoading");<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    long start = System.currentTimeMillis();<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    // Retry more than NB_RETRIES. As it was, retries were done in 5 seconds and we'd fail<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    // sometimes.<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    final long retries = NB_RETRIES * 10;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    for (int i = 0; i &lt; retries; i++) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      scan = new Scan();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      scanner = htable2.getScanner(scan);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      res = scanner.next(NB_ROWS_IN_BIG_BATCH);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      scanner.close();<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      if (res.length != NB_ROWS_IN_BIG_BATCH) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        if (i == retries - 1) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>          int lastRow = -1;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>          for (Result result : res) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            int currentRow = Bytes.toInt(result.getRow());<a name="line.332"></a>
+<span class="sourceLineNo">333</span>            for (int row = lastRow + 1; row &lt; currentRow; row++) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>              LOG.error("Row missing: " + row);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>            }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>            lastRow = currentRow;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>          }<a name="line.337"></a>
+<span class="sourceLineNo">338</span>          LOG.error("Last row: " + lastRow);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          fail("Waited too much time for normal batch replication, " + res.length + " instead of "<a name="line.339"></a>
+<span class="sourceLineNo">340</span>              + NB_ROWS_IN_BIG_BATCH + "; waited=" + (System.currentTimeMillis() - start) + "ms");<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        } else {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>          LOG.info("Only got " + res.length + " rows... retrying");<a name="line.342"></a>
+<span class="sourceLineNo">343</span>          Thread.sleep(SLEEP_TIME);<a name="line.343"></a>
+<span class="sourceLineNo">344</span>        }<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      } else {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>        break;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      }<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    }<a name="line.348"></a>
+<span class="sourceLineNo">349</span>  }<a name="line.349"></a>
+<span class="sourceLineNo">350</span><a name="line.350"></a>
+<span class="sourceLineNo">351</span>  /**<a name="line.351"></a>
+<span class="sourceLineNo">352</span>   * Test for HBASE-8663<a name="line.352"></a>
+<span class="sourceLineNo">353</span>   * &lt;p&gt;<a name="line.353"></a>
+<span class="sourceLineNo">354</span>   * Create two new Tables with colfamilies enabled for replication then run<a name="line.354"></a>
+<span class="sourceLineNo">355</span>   * ReplicationAdmin.listReplicated(). Finally verify the table:colfamilies. Note:<a name="line.355"></a>
+<span class="sourceLineNo">356</span>   * TestReplicationAdmin is a better place for this testing but it would need mocks.<a name="line.356"></a>
+<span class="sourceLineNo">357</span>   */<a name="line.357"></a>
+<span class="sourceLineNo">358</span>  @Test<a name="line.358"></a>
+<span class="sourceLineNo">359</span>  public void testVerifyListReplicatedTable() throws Exception {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    LOG.info("testVerifyListReplicatedTable");<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>    final String tName = "VerifyListReplicated_";<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    final String colFam = "cf1";<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    final int numOfTables = 3;<a name="line.364"></a>
+<span class="sourceLineNo">365</span><a name="line.365"></a>
+<span class="sourceLineNo">366</span>    Admin hadmin = utility1.getAdmin();<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span>    // Create Tables<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    for (int i = 0; i &lt; numOfTables; i++) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>      hadmin.createTable(TableDescriptorBuilder.newBuilder(TableName.valueOf(tName + i))<a name="line.370"></a>
+<span class="sourceLineNo">371</span>          .setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(colFam))<a name="line.371"></a>
+<span class="sourceLineNo">372</span>              .setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build())<a name="line.372"></a>
+<span class="sourceLineNo">373</span>          .build());<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    }<a name="line.374"></a>
+<span class="sourceLineNo">375</span><a name="line.375"></a>
+<span class="sourceLineNo">376</span>    // verify the result<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    List&lt;TableCFs&gt; replicationColFams = hbaseAdmin.listReplicatedTableCFs();<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    int[] match = new int[numOfTables]; // array of 3 with init value of zero<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>    for (int i = 0; i &lt; replicationColFams.size(); i++) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      TableCFs replicationEntry = replicationColFams.get(i);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>      String tn = replicationEntry.getTable().getNameAsString();<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      if (tn.startsWith(tName) &amp;&amp; replicationEntry.getColumnFamilyMap().containsKey(colFam)) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        int m = Integer.parseInt(tn.substring(tn.length() - 1)); // get the last digit<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        match[m]++; // should only increase once<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      }<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    }<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span>    // check the matching result<a name="line.389"></a>
+<span class="sourceLineNo">390</span>    for (int i = 0; i &lt; match.length; i++) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      assertTrue("listReplicated() does not match table " + i, (match[i] == 1));<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    }<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>    // drop tables<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    for (int i = 0; i &lt; numOfTables; i++) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>      TableName tableName = TableName.valueOf(tName + i);<a name="line.396"></a>
+<span class="sourceLineNo">397</span>      hadmin.disableTable(tableName);<a name="line.397"></a>
+<span class="sourceLineNo">398</span>      hadmin.deleteTable(tableName);<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>    hadmin.close();<a name="line.401"></a>
+<span class="sourceLineNo">402</span>  }<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>  /**<a name="line.404"></a>
+<span class="sourceLineNo">405</span>   * Test for HBase-15259 WALEdits under replay will also be replicated<a name="line.405"></a>
+<span class="sourceLineNo">406</span>   */<a name="line.406"></a>
+<span class="sourceLineNo">407</span>  @Test<a name="line.407"></a>
+<span class="sourceLineNo">408</span>  public void testReplicationInReplay() throws Exception {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    final TableName tableName = htable1.getName();<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>    HRegion region = utility1.getMiniHBaseCluster().getRegions(tableName).get(0);<a name="line.411"></a>
+<span class="sourceLineNo">412</span>    RegionInfo hri = region.getRegionInfo();<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    NavigableMap&lt;byte[], Integer&gt; scopes = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    for (byte[] fam : htable1.getDescriptor().getColumnFamilyNames()) {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      scopes.put(fam, 1);<a name="line.415"></a>
+<span class="sourceLineNo">416</span>    }<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    final MultiVersionConcurrencyControl mvcc = new MultiVersionConcurrencyControl();<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    int index = utility1.getMiniHBaseCluster().getServerWith(hri.getRegionName());<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    WAL wal = utility1.getMiniHBaseCluster().getRegionServer(index).getWAL(region.getRegionInfo());<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    final byte[] rowName = Bytes.toBytes("testReplicationInReplay");<a name="line.420"></a>
+<span class="sourceLineNo">421</span>    final byte[] qualifier = Bytes.toBytes("q");<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    final byte[] value = Bytes.toBytes("v");<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    WALEdit edit = new WALEdit(true);<a name="line.423"></a>
+<span class="sourceLineNo">424</span>    long now = EnvironmentEdgeManager.currentTime();<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    edit.add(new KeyValue(rowName, famName, qualifier, now, value));<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    WALKeyImpl walKey = new WALKeyImpl(hri.getEncodedNameAsBytes(), tableName, now, mvcc, scopes);<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    wal.append(hri, walKey, edit, true);<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    wal.sync();<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>    Get get = new Get(rowName);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      if (i == NB_RETRIES - 1) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        break;<a name="line.433"></a>
+<span class="sourceLineNo">434</span>      }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      Result res = htable2.get(get);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>      if (res.size() &gt;= 1) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        fail("Not supposed to be replicated for " + Bytes.toString(res.getRow()));<a name="line.437"></a>
+<span class="sourceLineNo">438</span>      } else {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        LOG.info("Row not replicated, let's wait a bit more...");<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        Thread.sleep(SLEEP_TIME);<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      }<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    }<a name="line.442"></a>
+<span class="sourceLineNo">443</span>  }<a name="line.443"></a>
+<span class="sourceLineNo">444</span>}<a name="line.444"></a>
 
 
 


[05/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html
index bee8222..7a938de 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html
@@ -72,7 +72,7 @@
 <span class="sourceLineNo">064</span>/**<a name="line.64"></a>
 <span class="sourceLineNo">065</span> * Tests ReplicationSource and ReplicationEndpoint interactions<a name="line.65"></a>
 <span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@Category({ReplicationTests.class, MediumTests.class})<a name="line.67"></a>
+<span class="sourceLineNo">067</span>@Category({ ReplicationTests.class, MediumTests.class })<a name="line.67"></a>
 <span class="sourceLineNo">068</span>public class TestReplicationEndpoint extends TestReplicationBase {<a name="line.68"></a>
 <span class="sourceLineNo">069</span><a name="line.69"></a>
 <span class="sourceLineNo">070</span>  @ClassRule<a name="line.70"></a>
@@ -86,317 +86,317 @@
 <span class="sourceLineNo">078</span>  @BeforeClass<a name="line.78"></a>
 <span class="sourceLineNo">079</span>  public static void setUpBeforeClass() throws Exception {<a name="line.79"></a>
 <span class="sourceLineNo">080</span>    TestReplicationBase.setUpBeforeClass();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    admin.removePeer("2");<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  @AfterClass<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  public static void tearDownAfterClass() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    TestReplicationBase.tearDownAfterClass();<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    // check stop is called<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() &gt; 0);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  }<a name="line.90"></a>
-<span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>  @Before<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  public void setup() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    ReplicationEndpointForTest.contructedCount.set(0);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    ReplicationEndpointForTest.startedCount.set(0);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    ReplicationEndpointForTest.replicateCount.set(0);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    ReplicationEndpointForTest.lastEntries = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    final List&lt;RegionServerThread&gt; rsThreads =<a name="line.99"></a>
-<span class="sourceLineNo">100</span>        utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    for (RegionServerThread rs : rsThreads) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    // Wait for  all log roll to finish<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    utility1.waitFor(3000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      @Override<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      public boolean evaluate() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>        for (RegionServerThread rs : rsThreads) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span>            return false;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>          }<a name="line.111"></a>
-<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>        return true;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>      @Override<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      public String explainFailure() throws Exception {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        List&lt;String&gt; logRollInProgressRsList = new ArrayList&lt;&gt;();<a name="line.118"></a>
-<span class="sourceLineNo">119</span>        for (RegionServerThread rs : rsThreads) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>            logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.121"></a>
-<span class="sourceLineNo">122</span>          }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>        }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>        return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      }<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    });<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>  @Test<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  public void testCustomReplicationEndpoint() throws Exception {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    // test installing a custom replication endpoint other than the default one.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    admin.addPeer("testCustomReplicationEndpoint",<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.133"></a>
-<span class="sourceLineNo">134</span>            .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    // check whether the class has been constructed and started<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      public boolean evaluate() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        return ReplicationEndpointForTest.contructedCount.get() &gt;= numRegionServers;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      }<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    });<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      @Override<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      public boolean evaluate() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>        return ReplicationEndpointForTest.startedCount.get() &gt;= numRegionServers;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      }<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    });<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>    // now replicate some data.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    doPut(Bytes.toBytes("row42"));<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      public boolean evaluate() throws Exception {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      }<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    });<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>    doAssert(Bytes.toBytes("row42"));<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>    admin.removePeer("testCustomReplicationEndpoint");<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>  @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    int peerCount = admin.getPeersCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    admin.addPeer(id,<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.175"></a>
-<span class="sourceLineNo">176</span>        .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    // debug.  Peer needs to be up for the edit to make it across. This wait on<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    // peer count seems to be a hack that has us not progress till peer is up.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    if (admin.getPeersCount() &lt;= peerCount) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      Threads.sleep(100);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    // now replicate some data<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    doPut(row);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      public boolean evaluate() throws Exception {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        // only send over one edit.<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        LOG.info("count=" + count);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>        return ReplicationEndpointReturningFalse.replicated.get();<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    });<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      throw ReplicationEndpointReturningFalse.ex.get();<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>    admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.201"></a>
-<span class="sourceLineNo">202</span>  }<a name="line.202"></a>
-<span class="sourceLineNo">203</span><a name="line.203"></a>
-<span class="sourceLineNo">204</span>  @Test<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  public void testInterClusterReplication() throws Exception {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    final String id = "testInterClusterReplication";<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>    List&lt;HRegion&gt; regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    int totEdits = 0;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>    // Make sure edits are spread across regions because we do region based batching<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    // before shipping edits.<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    for(HRegion region: regions) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      RegionInfo hri = region.getRegionInfo();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      byte[] row = hri.getStartKey();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      for (int i = 0; i &lt; 100; i++) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        if (row.length &gt; 0) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>          Put put = new Put(row);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          put.addColumn(famName, row, row);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          region.put(put);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>          totEdits++;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        }<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      }<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>    admin.addPeer(id,<a name="line.226"></a>
-<span class="sourceLineNo">227</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.227"></a>
-<span class="sourceLineNo">228</span>            .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        null);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>    final int numEdits = totEdits;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      public boolean evaluate() throws Exception {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>      @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      public String explainFailure() throws Exception {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.240"></a>
-<span class="sourceLineNo">241</span>            + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>        return failure;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      }<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    });<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>    admin.removePeer("testInterClusterReplication");<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    utility1.deleteTableData(tableName);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  @Test<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.252"></a>
-<span class="sourceLineNo">253</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    //test that we can create mutliple WALFilters reflectively<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        EverythingPassesWALEntryFilter.class.getName() +<a name="line.256"></a>
-<span class="sourceLineNo">257</span>            "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    // now replicate some data.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      doPut(connection, Bytes.toBytes("row1"));<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      doPut(connection, row);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      doPut(connection, Bytes.toBytes("row2"));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      public boolean evaluate() throws Exception {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    });<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>    Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    //make sure our reflectively created filter is in the filter chain<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span>  @Test (expected=IOException.class)<a name="line.279"></a>
-<span class="sourceLineNo">280</span>  public void testWALEntryFilterAddValidation() throws Exception {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    //test that we can create mutliple WALFilters reflectively<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        "IAmNotARealWalEntryFilter");<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  }<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span>  @Test (expected=IOException.class)<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.291"></a>
-<span class="sourceLineNo">292</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    //test that we can create mutliple WALFilters reflectively<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.294"></a>
-<span class="sourceLineNo">295</span>        "IAmNotARealWalEntryFilter");<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>  }<a name="line.297"></a>
+<span class="sourceLineNo">081</span>    numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  @AfterClass<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  public static void tearDownAfterClass() throws Exception {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    TestReplicationBase.tearDownAfterClass();<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    // check stop is called<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() &gt; 0);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>  @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  public void setup() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    ReplicationEndpointForTest.contructedCount.set(0);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    ReplicationEndpointForTest.startedCount.set(0);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    ReplicationEndpointForTest.replicateCount.set(0);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    ReplicationEndpointForTest.lastEntries = null;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    final List&lt;RegionServerThread&gt; rsThreads =<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    for (RegionServerThread rs : rsThreads) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    // Wait for  all log roll to finish<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    utility1.waitFor(3000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      public boolean evaluate() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        for (RegionServerThread rs : rsThreads) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>            return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>          }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        return true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>      @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      public String explainFailure() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        List&lt;String&gt; logRollInProgressRsList = new ArrayList&lt;&gt;();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        for (RegionServerThread rs : rsThreads) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>            logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.120"></a>
+<span class="sourceLineNo">121</span>          }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    });<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>  @Test<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  public void testCustomReplicationEndpoint() throws Exception {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // test installing a custom replication endpoint other than the default one.<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    admin.addPeer("testCustomReplicationEndpoint",<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.132"></a>
+<span class="sourceLineNo">133</span>            .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>    // check whether the class has been constructed and started<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      public boolean evaluate() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        return ReplicationEndpointForTest.contructedCount.get() &gt;= numRegionServers;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    });<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      public boolean evaluate() throws Exception {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        return ReplicationEndpointForTest.startedCount.get() &gt;= numRegionServers;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    });<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    // now replicate some data.<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    doPut(Bytes.toBytes("row42"));<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      public boolean evaluate() throws Exception {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    });<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>    doAssert(Bytes.toBytes("row42"));<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>    admin.removePeer("testCustomReplicationEndpoint");<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>  @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    int peerCount = admin.getPeersCount();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    admin.addPeer(id,<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    // debug.  Peer needs to be up for the edit to make it across. This wait on<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    // peer count seems to be a hack that has us not progress till peer is up.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    if (admin.getPeersCount() &lt;= peerCount) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      Threads.sleep(100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    // now replicate some data<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    doPut(row);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      public boolean evaluate() throws Exception {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        // only send over one edit.<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        LOG.info("count=" + count);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        return ReplicationEndpointReturningFalse.replicated.get();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    });<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      throw ReplicationEndpointReturningFalse.ex.get();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    }<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>    admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  public void testInterClusterReplication() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    final String id = "testInterClusterReplication";<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>    List&lt;HRegion&gt; regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    int totEdits = 0;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>    // Make sure edits are spread across regions because we do region based batching<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    // before shipping edits.<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    for(HRegion region: regions) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      RegionInfo hri = region.getRegionInfo();<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      byte[] row = hri.getStartKey();<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      for (int i = 0; i &lt; 100; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        if (row.length &gt; 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          Put put = new Put(row);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>          put.addColumn(famName, row, row);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          region.put(put);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>          totEdits++;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>    admin.addPeer(id,<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.226"></a>
+<span class="sourceLineNo">227</span>            .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        null);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>    final int numEdits = totEdits;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      public boolean evaluate() throws Exception {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>      @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      public String explainFailure() throws Exception {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.239"></a>
+<span class="sourceLineNo">240</span>            + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        return failure;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    });<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>    admin.removePeer("testInterClusterReplication");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    utility1.deleteTableData(tableName);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>  @Test<a name="line.249"></a>
+<span class="sourceLineNo">250</span>  public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    //test that we can create mutliple WALFilters reflectively<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        EverythingPassesWALEntryFilter.class.getName() +<a name="line.255"></a>
+<span class="sourceLineNo">256</span>            "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    // now replicate some data.<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      doPut(connection, Bytes.toBytes("row1"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      doPut(connection, row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      doPut(connection, Bytes.toBytes("row2"));<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      public boolean evaluate() throws Exception {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      }<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    });<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span>    Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    //make sure our reflectively created filter is in the filter chain<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>  @Test (expected=IOException.class)<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  public void testWALEntryFilterAddValidation() throws Exception {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    //test that we can create mutliple WALFilters reflectively<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        "IAmNotARealWalEntryFilter");<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>  @Test (expected=IOException.class)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>  public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    //test that we can create mutliple WALFilters reflectively<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        "IAmNotARealWalEntryFilter");<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>  }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
 <span class="sourceLineNo">298</span><a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>  @Test<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  public void testMetricsSourceBaseSourcePassthrough(){<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    /*<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    allows for custom JMX metrics.<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    the two layers of wrapping to the actual BaseSource.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    */<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    String id = "id";<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>    MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    String gaugeName = "gauge";<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    String singleGaugeName = "source.id." + gaugeName;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    String globalGaugeName = "source." + gaugeName;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    long delta = 1;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    String counterName = "counter";<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    String singleCounterName = "source.id." + counterName;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    String globalCounterName = "source." + counterName;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    long count = 2;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    source.decGauge(gaugeName, delta);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    source.getMetricsContext();<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    source.getMetricsDescription();<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    source.getMetricsJmxContext();<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    source.getMetricsName();<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    source.incCounters(counterName, count);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    source.incGauge(gaugeName, delta);<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    source.init();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    source.removeMetric(gaugeName);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    source.setGauge(gaugeName, delta);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    source.updateHistogram(counterName, count);<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    verify(globalRms).getMetricsContext();<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    verify(globalRms).getMetricsJmxContext();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    verify(globalRms).getMetricsName();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    verify(singleRms).incCounters(singleCounterName, count);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    verify(globalRms).incCounters(globalCounterName, count);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    verify(globalRms).init();<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    verify(singleRms).removeMetric(singleGaugeName);<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    verify(globalRms).removeMetric(globalGaugeName);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    verify(globalRms).updateHistogram(globalCounterName, count);<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>  private void doPut(byte[] row) throws IOException {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      doPut(connection, row);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>  private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    try (Table t = connection.getTable(tableName)) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      Put put = new Put(row);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      put.addColumn(famName, row, row);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      t.put(put);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>  private static void doAssert(byte[] row) throws Exception {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      return; // first call<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    List&lt;Cell&gt; cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    Assert.assertEquals(1, cells.size());<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      cells.get(0).getRowLength(), row, 0, row.length));<a name="line.380"></a>
-<span class="sourceLineNo">381</span>  }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span>  public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    static UUID uuid = UUID.randomUUID();<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    static AtomicInteger contructedCount = new AtomicInteger();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    static AtomicInteger startedCount = new AtomicInteger();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    static volatile List&lt;Entry&gt; lastEntries = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>    public ReplicationEndpointForTest() {<a name="line.391"></a>
+<span class="sourceLineNo">299</span>  @Test<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  public void testMetricsSourceBaseSourcePassthrough(){<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    /*<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    allows for custom JMX metrics.<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    the two layers of wrapping to the actual BaseSource.<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    String id = "id";<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>    MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    String gaugeName = "gauge";<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    String singleGaugeName = "source.id." + gaugeName;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    String globalGaugeName = "source." + gaugeName;<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    long delta = 1;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    String counterName = "counter";<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    String singleCounterName = "source.id." + counterName;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    String globalCounterName = "source." + counterName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    long count = 2;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    source.decGauge(gaugeName, delta);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    source.getMetricsContext();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    source.getMetricsDescription();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    source.getMetricsJmxContext();<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    source.getMetricsName();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    source.incCounters(counterName, count);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    source.incGauge(gaugeName, delta);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    source.init();<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    source.removeMetric(gaugeName);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    source.setGauge(gaugeName, delta);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    source.updateHistogram(counterName, count);<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>    verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    verify(globalRms).getMetricsContext();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    verify(globalRms).getMetricsJmxContext();<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    verify(globalRms).getMetricsName();<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    verify(singleRms).incCounters(singleCounterName, count);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    verify(globalRms).incCounters(globalCounterName, count);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    verify(globalRms).init();<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    verify(singleRms).removeMetric(singleGaugeName);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    verify(globalRms).removeMetric(globalGaugeName);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    verify(globalRms).updateHistogram(globalCounterName, count);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>  private void doPut(byte[] row) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      doPut(connection, row);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>  private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    try (Table t = connection.getTable(tableName)) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      Put put = new Put(row);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      put.addColumn(famName, row, row);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      t.put(put);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>  private static void doAssert(byte[] row) throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      return; // first call<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    List&lt;Cell&gt; cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    Assert.assertEquals(1, cells.size());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      cells.get(0).getRowLength(), row, 0, row.length));<a name="line.379"></a>
+<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>  public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    static UUID uuid = UUID.randomUUID();<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    static AtomicInteger contructedCount = new AtomicInteger();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    static AtomicInteger startedCount = new AtomicInteger();<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    static volatile List&lt;Entry&gt; lastEntries = null;<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>    public ReplicationEndpointForTest() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      replicateCount.set(0);<a name="line.391"></a>
 <span class="sourceLineNo">392</span>      contructedCount.incrementAndGet();<a name="line.392"></a>
 <span class="sourceLineNo">393</span>    }<a name="line.393"></a>
 <span class="sourceLineNo">394</span><a name="line.394"></a>
@@ -441,127 +441,131 @@
 <span class="sourceLineNo">433</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.433"></a>
 <span class="sourceLineNo">434</span>    static boolean failedOnce;<a name="line.434"></a>
 <span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      boolean success = super.replicate(replicateContext);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      if (success) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        replicateCount.addAndGet(replicateContext.entries.size());<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      }<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      return success;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>    @Override<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    protected Replicator createReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      // Fail only once, we don't want to slow down the test.<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      if (failedOnce) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>        return new DummyReplicator(entries, ordinal);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      } else {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>        failedOnce = true;<a name="line.451"></a>
-<span class="sourceLineNo">452</span>        return new FailingDummyReplicator(entries, ordinal);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
-<span class="sourceLineNo">455</span><a name="line.455"></a>
-<span class="sourceLineNo">456</span>    protected class DummyReplicator extends Replicator {<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>      private int ordinal;<a name="line.458"></a>
+<span class="sourceLineNo">436</span>    public InterClusterReplicationEndpointForTest() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>      replicateCount.set(0);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>    @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      boolean success = super.replicate(replicateContext);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      if (success) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        replicateCount.addAndGet(replicateContext.entries.size());<a name="line.444"></a>
+<span class="sourceLineNo">445</span>      }<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      return success;<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span>    @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    protected Replicator createReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      // Fail only once, we don't want to slow down the test.<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      if (failedOnce) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        return new DummyReplicator(entries, ordinal);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        failedOnce = true;<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        return new FailingDummyReplicator(entries, ordinal);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      }<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    }<a name="line.458"></a>
 <span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>      public DummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        super(entries, ordinal);<a name="line.461"></a>
-<span class="sourceLineNo">462</span>        this.ordinal = ordinal;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>      @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      public Integer call() throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        return ordinal;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      }<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    }<a name="line.469"></a>
-<span class="sourceLineNo">470</span><a name="line.470"></a>
-<span class="sourceLineNo">471</span>    protected class FailingDummyReplicator extends DummyReplicator {<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span>      public FailingDummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        super(entries, ordinal);<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
+<span class="sourceLineNo">460</span>    protected class DummyReplicator extends Replicator {<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>      private int ordinal;<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>      public DummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        super(entries, ordinal);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        this.ordinal = ordinal;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>      }<a name="line.467"></a>
+<span class="sourceLineNo">468</span><a name="line.468"></a>
+<span class="sourceLineNo">469</span>      @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      public Integer call() throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        return ordinal;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      }<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>    protected class FailingDummyReplicator extends DummyReplicator {<a name="line.475"></a>
 <span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>      @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      public Integer call() throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>        throw new IOException("Sample Exception: Failed to replicate.");<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      }<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>  public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    static int COUNT = 10;<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    @Override<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      try {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        // check row<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        doAssert(row);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      } catch (Exception e) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>        ex.set(e);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>      super.replicate(replicateContext);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>      replicated.set(replicateCount.get() &gt; COUNT); // first 10 times, we return false<a name="line.500"></a>
-<span class="sourceLineNo">501</span>      return replicated.get();<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    }<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span>  // return a WALEntry filter which only accepts "row", but not other rows<a name="line.505"></a>
-<span class="sourceLineNo">506</span>  public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.507"></a>
+<span class="sourceLineNo">477</span>      public FailingDummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        super(entries, ordinal);<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>      @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      public Integer call() throws IOException {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        throw new IOException("Sample Exception: Failed to replicate.");<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      }<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span>  public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    static int COUNT = 10;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>      try {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        // check row<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        doAssert(row);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>      } catch (Exception e) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        ex.set(e);<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      }<a name="line.499"></a>
+<span class="sourceLineNo">500</span><a name="line.500"></a>
+<span class="sourceLineNo">501</span>      super.replicate(replicateContext);<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>      replicated.set(replicateCount.get() &gt; COUNT); // first 10 times, we return false<a name="line.504"></a>
+<span class="sourceLineNo">505</span>      return replicated.get();<a name="line.505"></a>
+<span class="sourceLineNo">506</span>    }<a name="line.506"></a>
+<span class="sourceLineNo">507</span>  }<a name="line.507"></a>
 <span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span>    @Override<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      try {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        super.replicate(replicateContext);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>        doAssert(row);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      } catch (Exception e) {<a name="line.514"></a>
-<span class="sourceLineNo">515</span>        ex.set(e);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      }<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      return true;<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>    @Override<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    public WALEntryFilter getWALEntryfilter() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span>        public Entry filter(Entry entry) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>          ArrayList&lt;Cell&gt; cells = entry.getEdit().getCells();<a name="line.525"></a>
-<span class="sourceLineNo">526</span>          int size = cells.size();<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          for (int i = size-1; i &gt;= 0; i--) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>            Cell cell = cells.get(i);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>            if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.529"></a>
-<span class="sourceLineNo">530</span>              row, 0, row.length)) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span>              cells.remove(i);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>            }<a name="line.532"></a>
-<span class="sourceLineNo">533</span>          }<a name="line.533"></a>
-<span class="sourceLineNo">534</span>          return entry;<a name="line.534"></a>
-<span class="sourceLineNo">535</span>        }<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      });<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    }<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span>  public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    private static boolean passedEntry = false;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    public Entry filter(Entry entry) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>      passedEntry = true;<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      return entry;<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>    public static boolean hasPassedAnEntry(){<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      return passedEntry;<a name="line.549"></a>
+<span class="sourceLineNo">509</span>  // return a WALEntry filter which only accepts "row", but not other rows<a name="line.509"></a>
+<span class="sourceLineNo">510</span>  public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span>    @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      try {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        super.replicate(replicateContext);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        doAssert(row);<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      } catch (Exception e) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        ex.set(e);<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      }<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      return true;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>    }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span>    @Override<a name="line.524"></a>
+<span class="sourceLineNo">525</span>    public WALEntryFilter getWALEntryfilter() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public Entry filter(Entry entry) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>          ArrayList&lt;Cell&gt; cells = entry.getEdit().getCells();<a name="line.529"></a>
+<span class="sourceLineNo">530</span>          int size = cells.size();<a name="line.530"></a>
+<span class="sourceLineNo">531</span>          for (int i = size-1; i &gt;= 0; i--) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>            Cell cell = cells.get(i);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>            if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.533"></a>
+<span class="sourceLineNo">534</span>              row, 0, row.length)) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>              cells.remove(i);<a name="line.535"></a>
+<span class="sourceLineNo">536</span>            }<a name="line.536"></a>
+<span class="sourceLineNo">537</span>          }<a name="line.537"></a>
+<span class="sourceLineNo">538</span>          return entry;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        }<a name="line.539"></a>
+<span class="sourceLineNo">540</span>      });<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>  }<a name="line.542"></a>
+<span class="sourceLineNo">543</span><a name="line.543"></a>
+<span class="sourceLineNo">544</span>  public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.544"></a>
+<span class="sourceLineNo">545</span>    private static boolean passedEntry = false;<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    public Entry filter(Entry entry) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>      passedEntry = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      return entry;<a name="line.549"></a>
 <span class="sourceLineNo">550</span>    }<a name="line.550"></a>
-<span class="sourceLineNo">551</span>  }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span>  public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>    public static boolean hasPassedAnEntry(){<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      return passedEntry;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    }<a name="line.554"></a>
 <span class="sourceLineNo">555</span>  }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>}<a name="line.556"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span>  public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span>  }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>}<a name="line.560"></a>
 
 
 


[17/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html
index aadad07..b8921c5 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html
@@ -30,419 +30,471 @@
 <span class="sourceLineNo">022</span>import static org.junit.Assert.assertTrue;<a name="line.22"></a>
 <span class="sourceLineNo">023</span>import static org.junit.Assert.fail;<a name="line.23"></a>
 <span class="sourceLineNo">024</span><a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.util.Objects;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.util.concurrent.TimeUnit;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.Cell;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.CellScanner;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HConstants;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.TableName;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.client.Result;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.Table;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.security.User;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.junit.After;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.junit.AfterClass;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.junit.BeforeClass;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.junit.ClassRule;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.junit.Test;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.junit.experimental.categories.Category;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.slf4j.Logger;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.slf4j.LoggerFactory;<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hbase.thirdparty.com.google.common.collect.Iterables;<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Quotas;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceLimitRequest;<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>/**<a name="line.57"></a>
-<span class="sourceLineNo">058</span> * minicluster tests that validate that quota  entries are properly set in the quota table<a name="line.58"></a>
-<span class="sourceLineNo">059</span> */<a name="line.59"></a>
-<span class="sourceLineNo">060</span>@Category({ClientTests.class, MediumTests.class})<a name="line.60"></a>
-<span class="sourceLineNo">061</span>public class TestQuotaAdmin {<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  @ClassRule<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.64"></a>
-<span class="sourceLineNo">065</span>      HBaseClassTestRule.forClass(TestQuotaAdmin.class);<a name="line.65"></a>
-<span class="sourceLineNo">066</span><a name="line.66"></a>
-<span class="sourceLineNo">067</span>  private static final Logger LOG = LoggerFactory.getLogger(TestQuotaAdmin.class);<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>  private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>  @BeforeClass<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  public static void setUpBeforeClass() throws Exception {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    TEST_UTIL.getConfiguration().setBoolean(QuotaUtil.QUOTA_CONF_KEY, true);<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    TEST_UTIL.getConfiguration().setInt(QuotaCache.REFRESH_CONF_KEY, 2000);<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    TEST_UTIL.getConfiguration().setInt("hbase.hstore.compactionThreshold", 10);<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    TEST_UTIL.getConfiguration().setInt("hbase.regionserver.msginterval", 100);<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    TEST_UTIL.getConfiguration().setInt("hbase.client.pause", 250);<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    TEST_UTIL.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 6);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    TEST_UTIL.getConfiguration().setBoolean("hbase.master.enabletable.roundrobin", true);<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    TEST_UTIL.startMiniCluster(1);<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    TEST_UTIL.waitTableAvailable(QuotaTableUtil.QUOTA_TABLE_NAME);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  }<a name="line.82"></a>
-<span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span>  @After<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  public void clearQuotaTable() throws Exception {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    if (TEST_UTIL.getAdmin().tableExists(QuotaUtil.QUOTA_TABLE_NAME)) {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>      TEST_UTIL.getAdmin().disableTable(QuotaUtil.QUOTA_TABLE_NAME);<a name="line.87"></a>
-<span class="sourceLineNo">088</span>      TEST_UTIL.getAdmin().truncateTable(QuotaUtil.QUOTA_TABLE_NAME, false);<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    }<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  }<a name="line.90"></a>
-<span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>  @AfterClass<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  public static void tearDownAfterClass() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  }<a name="line.95"></a>
-<span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span>  @Test<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  public void testThrottleType() throws Exception {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    Admin admin = TEST_UTIL.getAdmin();<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    String userName = User.getCurrent().getShortName();<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span>    admin.setQuota(QuotaSettingsFactory<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      .throttleUser(userName, ThrottleType.READ_NUMBER, 6, TimeUnit.MINUTES));<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    admin.setQuota(QuotaSettingsFactory<a name="line.104"></a>
-<span class="sourceLineNo">105</span>      .throttleUser(userName, ThrottleType.WRITE_NUMBER, 12, TimeUnit.MINUTES));<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    admin.setQuota(QuotaSettingsFactory.bypassGlobals(userName, true));<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>    try (QuotaRetriever scanner = QuotaRetriever.open(TEST_UTIL.getConfiguration())) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      int countThrottle = 0;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      int countGlobalBypass = 0;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      for (QuotaSettings settings: scanner) {<a name="line.111"></a>
-<span class="sourceLineNo">112</span>        switch (settings.getQuotaType()) {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>          case THROTTLE:<a name="line.113"></a>
-<span class="sourceLineNo">114</span>            ThrottleSettings throttle = (ThrottleSettings)settings;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>            if (throttle.getSoftLimit() == 6) {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>              assertEquals(ThrottleType.READ_NUMBER, throttle.getThrottleType());<a name="line.116"></a>
-<span class="sourceLineNo">117</span>            } else if (throttle.getSoftLimit() == 12) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>              assertEquals(ThrottleType.WRITE_NUMBER, throttle.getThrottleType());<a name="line.118"></a>
-<span class="sourceLineNo">119</span>            } else {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>              fail("should not come here, because don't set quota with this limit");<a name="line.120"></a>
-<span class="sourceLineNo">121</span>            }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>            assertEquals(userName, throttle.getUserName());<a name="line.122"></a>
-<span class="sourceLineNo">123</span>            assertEquals(null, throttle.getTableName());<a name="line.123"></a>
-<span class="sourceLineNo">124</span>            assertEquals(null, throttle.getNamespace());<a name="line.124"></a>
-<span class="sourceLineNo">125</span>            assertEquals(TimeUnit.MINUTES, throttle.getTimeUnit());<a name="line.125"></a>
-<span class="sourceLineNo">126</span>            countThrottle++;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>            break;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>          case GLOBAL_BYPASS:<a name="line.128"></a>
-<span class="sourceLineNo">129</span>            countGlobalBypass++;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>            break;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>          default:<a name="line.131"></a>
-<span class="sourceLineNo">132</span>            fail("unexpected settings type: " + settings.getQuotaType());<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        }<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      }<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      assertEquals(2, countThrottle);<a name="line.135"></a>
-<span class="sourceLineNo">136</span>      assertEquals(1, countGlobalBypass);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    }<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>    admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName));<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    assertNumResults(1, null);<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    admin.setQuota(QuotaSettingsFactory.bypassGlobals(userName, false));<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    assertNumResults(0, null);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  }<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>  @Test<a name="line.145"></a>
-<span class="sourceLineNo">146</span>  public void testSimpleScan() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    Admin admin = TEST_UTIL.getAdmin();<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    String userName = User.getCurrent().getShortName();<a name="line.148"></a>
-<span class="sourceLineNo">149</span><a name="line.149"></a>
-<span class="sourceLineNo">150</span>    admin.setQuota(QuotaSettingsFactory<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      .throttleUser(userName, ThrottleType.REQUEST_NUMBER, 6, TimeUnit.MINUTES));<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    admin.setQuota(QuotaSettingsFactory.bypassGlobals(userName, true));<a name="line.152"></a>
+<span class="sourceLineNo">025</span>import java.io.IOException;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.util.ArrayList;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.util.List;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.util.Objects;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.util.concurrent.TimeUnit;<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.Cell;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.CellScanner;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.HConstants;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.TableName;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.client.Put;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.client.Result;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.client.Table;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.security.User;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.junit.After;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.junit.AfterClass;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.junit.BeforeClass;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.junit.ClassRule;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.junit.Test;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.junit.experimental.categories.Category;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.slf4j.Logger;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.slf4j.LoggerFactory;<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hbase.thirdparty.com.google.common.collect.Iterables;<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Quotas;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceLimitRequest;<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>/**<a name="line.66"></a>
+<span class="sourceLineNo">067</span> * minicluster tests that validate that quota  entries are properly set in the quota table<a name="line.67"></a>
+<span class="sourceLineNo">068</span> */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>@Category({ClientTests.class, MediumTests.class})<a name="line.69"></a>
+<span class="sourceLineNo">070</span>public class TestQuotaAdmin {<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  @ClassRule<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.73"></a>
+<span class="sourceLineNo">074</span>      HBaseClassTestRule.forClass(TestQuotaAdmin.class);<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>  private static final Logger LOG = LoggerFactory.getLogger(TestQuotaAdmin.class);<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>  private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>  @BeforeClass<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  public static void setUpBeforeClass() throws Exception {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    TEST_UTIL.getConfiguration().setBoolean(QuotaUtil.QUOTA_CONF_KEY, true);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    TEST_UTIL.getConfiguration().setInt(QuotaCache.REFRESH_CONF_KEY, 2000);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    TEST_UTIL.getConfiguration().setInt("hbase.hstore.compactionThreshold", 10);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    TEST_UTIL.getConfiguration().setInt("hbase.regionserver.msginterval", 100);<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    TEST_UTIL.getConfiguration().setInt("hbase.client.pause", 250);<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    TEST_UTIL.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 6);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    TEST_UTIL.getConfiguration().setBoolean("hbase.master.enabletable.roundrobin", true);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    TEST_UTIL.startMiniCluster(1);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    TEST_UTIL.waitTableAvailable(QuotaTableUtil.QUOTA_TABLE_NAME);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>  @After<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  public void clearQuotaTable() throws Exception {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    if (TEST_UTIL.getAdmin().tableExists(QuotaUtil.QUOTA_TABLE_NAME)) {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>      TEST_UTIL.getAdmin().disableTable(QuotaUtil.QUOTA_TABLE_NAME);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      TEST_UTIL.getAdmin().truncateTable(QuotaUtil.QUOTA_TABLE_NAME, false);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    }<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  @AfterClass<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  public static void tearDownAfterClass() throws Exception {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.103"></a>
+<span class="sourceLineNo">104</span>  }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>  @Test<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  public void testThrottleType() throws Exception {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    Admin admin = TEST_UTIL.getAdmin();<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    String userName = User.getCurrent().getShortName();<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>    admin.setQuota(<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        QuotaSettingsFactory.throttleUser(userName, ThrottleType.READ_NUMBER, 6, TimeUnit.MINUTES));<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    admin.setQuota(QuotaSettingsFactory<a name="line.113"></a>
+<span class="sourceLineNo">114</span>        .throttleUser(userName, ThrottleType.WRITE_NUMBER, 12, TimeUnit.MINUTES));<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    admin.setQuota(QuotaSettingsFactory.bypassGlobals(userName, true));<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>    try (QuotaRetriever scanner = QuotaRetriever.open(TEST_UTIL.getConfiguration())) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      int countThrottle = 0;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      int countGlobalBypass = 0;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      for (QuotaSettings settings: scanner) {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        switch (settings.getQuotaType()) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>          case THROTTLE:<a name="line.122"></a>
+<span class="sourceLineNo">123</span>            ThrottleSettings throttle = (ThrottleSettings)settings;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>            if (throttle.getSoftLimit() == 6) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>              assertEquals(ThrottleType.READ_NUMBER, throttle.getThrottleType());<a name="line.125"></a>
+<span class="sourceLineNo">126</span>            } else if (throttle.getSoftLimit() == 12) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>              assertEquals(ThrottleType.WRITE_NUMBER, throttle.getThrottleType());<a name="line.127"></a>
+<span class="sourceLineNo">128</span>            } else {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>              fail("should not come here, because don't set quota with this limit");<a name="line.129"></a>
+<span class="sourceLineNo">130</span>            }<a name="line.130"></a>
+<span class="sourceLineNo">131</span>            assertEquals(userName, throttle.getUserName());<a name="line.131"></a>
+<span class="sourceLineNo">132</span>            assertEquals(null, throttle.getTableName());<a name="line.132"></a>
+<span class="sourceLineNo">133</span>            assertEquals(null, throttle.getNamespace());<a name="line.133"></a>
+<span class="sourceLineNo">134</span>            assertEquals(TimeUnit.MINUTES, throttle.getTimeUnit());<a name="line.134"></a>
+<span class="sourceLineNo">135</span>            countThrottle++;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>            break;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>          case GLOBAL_BYPASS:<a name="line.137"></a>
+<span class="sourceLineNo">138</span>            countGlobalBypass++;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>            break;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>          default:<a name="line.140"></a>
+<span class="sourceLineNo">141</span>            fail("unexpected settings type: " + settings.getQuotaType());<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      }<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      assertEquals(2, countThrottle);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      assertEquals(1, countGlobalBypass);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    }<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>    admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName));<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    assertNumResults(1, null);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    admin.setQuota(QuotaSettingsFactory.bypassGlobals(userName, false));<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    assertNumResults(0, null);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  }<a name="line.152"></a>
 <span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>    try (QuotaRetriever scanner = QuotaRetriever.open(TEST_UTIL.getConfiguration())) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      int countThrottle = 0;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      int countGlobalBypass = 0;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      for (QuotaSettings settings: scanner) {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        LOG.debug(Objects.toString(settings));<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        switch (settings.getQuotaType()) {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>          case THROTTLE:<a name="line.160"></a>
-<span class="sourceLineNo">161</span>            ThrottleSettings throttle = (ThrottleSettings)settings;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>            assertEquals(userName, throttle.getUserName());<a name="line.162"></a>
-<span class="sourceLineNo">163</span>            assertEquals(null, throttle.getTableName());<a name="line.163"></a>
-<span class="sourceLineNo">164</span>            assertEquals(null, throttle.getNamespace());<a name="line.164"></a>
-<span class="sourceLineNo">165</span>            assertEquals(6, throttle.getSoftLimit());<a name="line.165"></a>
-<span class="sourceLineNo">166</span>            assertEquals(TimeUnit.MINUTES, throttle.getTimeUnit());<a name="line.166"></a>
-<span class="sourceLineNo">167</span>            countThrottle++;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>            break;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>          case GLOBAL_BYPASS:<a name="line.169"></a>
-<span class="sourceLineNo">170</span>            countGlobalBypass++;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>            break;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>          default:<a name="line.172"></a>
-<span class="sourceLineNo">173</span>            fail("unexpected settings type: " + settings.getQuotaType());<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      }<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      assertEquals(1, countThrottle);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      assertEquals(1, countGlobalBypass);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>    admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName));<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    assertNumResults(1, null);<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    admin.setQuota(QuotaSettingsFactory.bypassGlobals(userName, false));<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    assertNumResults(0, null);<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  }<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  @Test<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  public void testQuotaRetrieverFilter() throws Exception {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    Admin admin = TEST_UTIL.getAdmin();<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    TableName[] tables = new TableName[] {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      TableName.valueOf("T0"), TableName.valueOf("T01"), TableName.valueOf("NS0:T2"),<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    };<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    String[] namespaces = new String[] { "NS0", "NS01", "NS2" };<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    String[] users = new String[] { "User0", "User01", "User2" };<a name="line.193"></a>
+<span class="sourceLineNo">154</span>  @Test<a name="line.154"></a>
+<span class="sourceLineNo">155</span>  public void testSimpleScan() throws Exception {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    Admin admin = TEST_UTIL.getAdmin();<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    String userName = User.getCurrent().getShortName();<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>    admin.setQuota(QuotaSettingsFactory<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      .throttleUser(userName, ThrottleType.REQUEST_NUMBER, 6, TimeUnit.MINUTES));<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    admin.setQuota(QuotaSettingsFactory.bypassGlobals(userName, true));<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>    try (QuotaRetriever scanner = QuotaRetriever.open(TEST_UTIL.getConfiguration())) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      int countThrottle = 0;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>      int countGlobalBypass = 0;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      for (QuotaSettings settings: scanner) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        LOG.debug(Objects.toString(settings));<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        switch (settings.getQuotaType()) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>          case THROTTLE:<a name="line.169"></a>
+<span class="sourceLineNo">170</span>            ThrottleSettings throttle = (ThrottleSettings)settings;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>            assertEquals(userName, throttle.getUserName());<a name="line.171"></a>
+<span class="sourceLineNo">172</span>            assertEquals(null, throttle.getTableName());<a name="line.172"></a>
+<span class="sourceLineNo">173</span>            assertEquals(null, throttle.getNamespace());<a name="line.173"></a>
+<span class="sourceLineNo">174</span>            assertEquals(6, throttle.getSoftLimit());<a name="line.174"></a>
+<span class="sourceLineNo">175</span>            assertEquals(TimeUnit.MINUTES, throttle.getTimeUnit());<a name="line.175"></a>
+<span class="sourceLineNo">176</span>            countThrottle++;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>            break;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>          case GLOBAL_BYPASS:<a name="line.178"></a>
+<span class="sourceLineNo">179</span>            countGlobalBypass++;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>            break;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>          default:<a name="line.181"></a>
+<span class="sourceLineNo">182</span>            fail("unexpected settings type: " + settings.getQuotaType());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      }<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      assertEquals(1, countThrottle);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      assertEquals(1, countGlobalBypass);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    }<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>    admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName));<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    assertNumResults(1, null);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    admin.setQuota(QuotaSettingsFactory.bypassGlobals(userName, false));<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    assertNumResults(0, null);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  }<a name="line.193"></a>
 <span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>    for (String user: users) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      admin.setQuota(QuotaSettingsFactory<a name="line.196"></a>
-<span class="sourceLineNo">197</span>        .throttleUser(user, ThrottleType.REQUEST_NUMBER, 1, TimeUnit.MINUTES));<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>      for (TableName table: tables) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        admin.setQuota(QuotaSettingsFactory<a name="line.200"></a>
-<span class="sourceLineNo">201</span>          .throttleUser(user, table, ThrottleType.REQUEST_NUMBER, 2, TimeUnit.MINUTES));<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      }<a name="line.202"></a>
-<span class="sourceLineNo">203</span><a name="line.203"></a>
-<span class="sourceLineNo">204</span>      for (String ns: namespaces) {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        admin.setQuota(QuotaSettingsFactory<a name="line.205"></a>
-<span class="sourceLineNo">206</span>          .throttleUser(user, ns, ThrottleType.REQUEST_NUMBER, 3, TimeUnit.MINUTES));<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      }<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    assertNumResults(21, null);<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>    for (TableName table: tables) {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      admin.setQuota(QuotaSettingsFactory<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        .throttleTable(table, ThrottleType.REQUEST_NUMBER, 4, TimeUnit.MINUTES));<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    }<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    assertNumResults(24, null);<a name="line.215"></a>
+<span class="sourceLineNo">195</span>  @Test<a name="line.195"></a>
+<span class="sourceLineNo">196</span>  public void testMultiQuotaThrottling() throws Exception {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    byte[] FAMILY = Bytes.toBytes("testFamily");<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    byte[] ROW = Bytes.toBytes("testRow");<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    byte[] QUALIFIER = Bytes.toBytes("testQualifier");<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    byte[] VALUE = Bytes.toBytes("testValue");<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>    Admin admin = TEST_UTIL.getAdmin();<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    TableName tableName = TableName.valueOf("testMultiQuotaThrottling");<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    TableDescriptor desc = TableDescriptorBuilder.newBuilder(tableName)<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        .setColumnFamily(ColumnFamilyDescriptorBuilder.of(FAMILY)).build();<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    admin.createTable(desc);<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>    // Set up the quota.<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    admin.setQuota(QuotaSettingsFactory.throttleTable(tableName, ThrottleType.WRITE_NUMBER, 6,<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        TimeUnit.SECONDS));<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>    Thread.sleep(1000);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    TEST_UTIL.getRSForFirstRegionInTable(tableName).getRegionServerRpcQuotaManager().<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        getQuotaCache().triggerCacheRefresh();<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    Thread.sleep(1000);<a name="line.215"></a>
 <span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span>    for (String ns: namespaces) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      admin.setQuota(QuotaSettingsFactory<a name="line.218"></a>
-<span class="sourceLineNo">219</span>        .throttleNamespace(ns, ThrottleType.REQUEST_NUMBER, 5, TimeUnit.MINUTES));<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    }<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    assertNumResults(27, null);<a name="line.221"></a>
+<span class="sourceLineNo">217</span>    Table t =  TEST_UTIL.getConnection().getTable(tableName);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    try {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      int size = 5;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      List actions = new ArrayList();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      Object[] results = new Object[size];<a name="line.221"></a>
 <span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>    assertNumResults(7, new QuotaFilter().setUserFilter("User0"));<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    assertNumResults(0, new QuotaFilter().setUserFilter("User"));<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    assertNumResults(21, new QuotaFilter().setUserFilter("User.*"));<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    assertNumResults(3, new QuotaFilter().setUserFilter("User.*").setTableFilter("T0"));<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    assertNumResults(3, new QuotaFilter().setUserFilter("User.*").setTableFilter("NS.*"));<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    assertNumResults(0, new QuotaFilter().setUserFilter("User.*").setTableFilter("T"));<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    assertNumResults(6, new QuotaFilter().setUserFilter("User.*").setTableFilter("T.*"));<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    assertNumResults(3, new QuotaFilter().setUserFilter("User.*").setNamespaceFilter("NS0"));<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    assertNumResults(0, new QuotaFilter().setUserFilter("User.*").setNamespaceFilter("NS"));<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    assertNumResults(9, new QuotaFilter().setUserFilter("User.*").setNamespaceFilter("NS.*"));<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    assertNumResults(6, new QuotaFilter().setUserFilter("User.*")<a name="line.233"></a>
-<span class="sourceLineNo">234</span>                                            .setTableFilter("T0").setNamespaceFilter("NS0"));<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    assertNumResults(1, new QuotaFilter().setTableFilter("T0"));<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    assertNumResults(0, new QuotaFilter().setTableFilter("T"));<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    assertNumResults(2, new QuotaFilter().setTableFilter("T.*"));<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    assertNumResults(3, new QuotaFilter().setTableFilter(".*T.*"));<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    assertNumResults(1, new QuotaFilter().setNamespaceFilter("NS0"));<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    assertNumResults(0, new QuotaFilter().setNamespaceFilter("NS"));<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    assertNumResults(3, new QuotaFilter().setNamespaceFilter("NS.*"));<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>    for (String user: users) {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      admin.setQuota(QuotaSettingsFactory.unthrottleUser(user));<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      for (TableName table: tables) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>        admin.setQuota(QuotaSettingsFactory.unthrottleUser(user, table));<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      for (String ns: namespaces) {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>        admin.setQuota(QuotaSettingsFactory.unthrottleUser(user, ns));<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      }<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    }<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    assertNumResults(6, null);<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span>    for (TableName table: tables) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      admin.setQuota(QuotaSettingsFactory.unthrottleTable(table));<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    }<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    assertNumResults(3, null);<a name="line.257"></a>
-<span class="sourceLineNo">258</span><a name="line.258"></a>
-<span class="sourceLineNo">259</span>    for (String ns: namespaces) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      admin.setQuota(QuotaSettingsFactory.unthrottleNamespace(ns));<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    }<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    assertNumResults(0, null);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>  }<a name="line.263"></a>
-<span class="sourceLineNo">264</span><a name="line.264"></a>
-<span class="sourceLineNo">265</span>  @Test<a name="line.265"></a>
-<span class="sourceLineNo">266</span>  public void testSetGetRemoveSpaceQuota() throws Exception {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    Admin admin = TEST_UTIL.getAdmin();<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    final TableName tn = TableName.valueOf("sq_table1");<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    final long sizeLimit = 1024L * 1024L * 1024L * 1024L * 5L; // 5TB<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    final SpaceViolationPolicy violationPolicy = SpaceViolationPolicy.NO_WRITES;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    QuotaSettings settings = QuotaSettingsFactory.limitTableSpace(tn, sizeLimit, violationPolicy);<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    admin.setQuota(settings);<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>    // Verify the Quotas in the table<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      ResultScanner scanner = quotaTable.getScanner(new Scan());<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      try {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>        Result r = Iterables.getOnlyElement(scanner);<a name="line.278"></a>
-<span class="sourceLineNo">279</span>        CellScanner cells = r.cellScanner();<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        assertTrue("Expected to find a cell", cells.advance());<a name="line.280"></a>
-<span class="sourceLineNo">281</span>        assertSpaceQuota(sizeLimit, violationPolicy, cells.current());<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      } finally {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        scanner.close();<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      }<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    }<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>    // Verify we can retrieve it via the QuotaRetriever API<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    QuotaRetriever scanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    try {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      assertSpaceQuota(sizeLimit, violationPolicy, Iterables.getOnlyElement(scanner));<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    } finally {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      scanner.close();<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    }<a name="line.293"></a>
+<span class="sourceLineNo">223</span>      for (int i = 0; i &lt; size; i++) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        Put put1 = new Put(ROW);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        put1.addColumn(FAMILY, QUALIFIER, VALUE);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        actions.add(put1);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      t.batch(actions, results);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      t.batch(actions, results);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    } catch (IOException e) {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      fail("Not supposed to get ThrottlingExcepiton " + e);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    } finally {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      t.close();<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    }<a name="line.234"></a>
+<span class="sourceLineNo">235</span>  }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>  @Test<a name="line.238"></a>
+<span class="sourceLineNo">239</span>  public void testQuotaRetrieverFilter() throws Exception {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    Admin admin = TEST_UTIL.getAdmin();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    TableName[] tables = new TableName[] {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      TableName.valueOf("T0"), TableName.valueOf("T01"), TableName.valueOf("NS0:T2"),<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    };<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    String[] namespaces = new String[] { "NS0", "NS01", "NS2" };<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    String[] users = new String[] { "User0", "User01", "User2" };<a name="line.245"></a>
+<span class="sourceLineNo">246</span><a name="line.246"></a>
+<span class="sourceLineNo">247</span>    for (String user: users) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      admin.setQuota(QuotaSettingsFactory<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        .throttleUser(user, ThrottleType.REQUEST_NUMBER, 1, TimeUnit.MINUTES));<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span>      for (TableName table: tables) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        admin.setQuota(QuotaSettingsFactory<a name="line.252"></a>
+<span class="sourceLineNo">253</span>          .throttleUser(user, table, ThrottleType.REQUEST_NUMBER, 2, TimeUnit.MINUTES));<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>      for (String ns: namespaces) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        admin.setQuota(QuotaSettingsFactory<a name="line.257"></a>
+<span class="sourceLineNo">258</span>          .throttleUser(user, ns, ThrottleType.REQUEST_NUMBER, 3, TimeUnit.MINUTES));<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      }<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    }<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    assertNumResults(21, null);<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span>    for (TableName table: tables) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      admin.setQuota(QuotaSettingsFactory<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        .throttleTable(table, ThrottleType.REQUEST_NUMBER, 4, TimeUnit.MINUTES));<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    assertNumResults(24, null);<a name="line.267"></a>
+<span class="sourceLineNo">268</span><a name="line.268"></a>
+<span class="sourceLineNo">269</span>    for (String ns: namespaces) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      admin.setQuota(QuotaSettingsFactory<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        .throttleNamespace(ns, ThrottleType.REQUEST_NUMBER, 5, TimeUnit.MINUTES));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    }<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    assertNumResults(27, null);<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>    assertNumResults(7, new QuotaFilter().setUserFilter("User0"));<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    assertNumResults(0, new QuotaFilter().setUserFilter("User"));<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    assertNumResults(21, new QuotaFilter().setUserFilter("User.*"));<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    assertNumResults(3, new QuotaFilter().setUserFilter("User.*").setTableFilter("T0"));<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    assertNumResults(3, new QuotaFilter().setUserFilter("User.*").setTableFilter("NS.*"));<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    assertNumResults(0, new QuotaFilter().setUserFilter("User.*").setTableFilter("T"));<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    assertNumResults(6, new QuotaFilter().setUserFilter("User.*").setTableFilter("T.*"));<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    assertNumResults(3, new QuotaFilter().setUserFilter("User.*").setNamespaceFilter("NS0"));<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    assertNumResults(0, new QuotaFilter().setUserFilter("User.*").setNamespaceFilter("NS"));<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    assertNumResults(9, new QuotaFilter().setUserFilter("User.*").setNamespaceFilter("NS.*"));<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    assertNumResults(6, new QuotaFilter().setUserFilter("User.*")<a name="line.285"></a>
+<span class="sourceLineNo">286</span>                                            .setTableFilter("T0").setNamespaceFilter("NS0"));<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    assertNumResults(1, new QuotaFilter().setTableFilter("T0"));<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    assertNumResults(0, new QuotaFilter().setTableFilter("T"));<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    assertNumResults(2, new QuotaFilter().setTableFilter("T.*"));<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    assertNumResults(3, new QuotaFilter().setTableFilter(".*T.*"));<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    assertNumResults(1, new QuotaFilter().setNamespaceFilter("NS0"));<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    assertNumResults(0, new QuotaFilter().setNamespaceFilter("NS"));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    assertNumResults(3, new QuotaFilter().setNamespaceFilter("NS.*"));<a name="line.293"></a>
 <span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>    // Now, remove the quota<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    QuotaSettings removeQuota = QuotaSettingsFactory.removeTableSpaceLimit(tn);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    admin.setQuota(removeQuota);<a name="line.297"></a>
-<span class="sourceLineNo">298</span><a name="line.298"></a>
-<span class="sourceLineNo">299</span>    // Verify that the record doesn't exist in the table<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      ResultScanner rs = quotaTable.getScanner(new Scan());<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      try {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        assertNull("Did not expect to find a quota entry", rs.next());<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      } finally {<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        rs.close();<a name="line.305"></a>
-<span class="sourceLineNo">306</span>      }<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    }<a name="line.307"></a>
-<span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span>    // Verify that we can also not fetch it via the API<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    scanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    try {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      assertNull("Did not expect to find a quota entry", scanner.next());<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    } finally {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      scanner.close();<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    }<a name="line.315"></a>
-<span class="sourceLineNo">316</span>  }<a name="line.316"></a>
-<span class="sourceLineNo">317</span><a name="line.317"></a>
-<span class="sourceLineNo">318</span>  @Test<a name="line.318"></a>
-<span class="sourceLineNo">319</span>  public void testSetModifyRemoveQuota() throws Exception {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    Admin admin = TEST_UTIL.getAdmin();<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    final TableName tn = TableName.valueOf("sq_table2");<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    final long originalSizeLimit = 1024L * 1024L * 1024L * 1024L * 5L; // 5TB<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    final SpaceViolationPolicy violationPolicy = SpaceViolationPolicy.NO_WRITES;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    QuotaSettings settings = QuotaSettingsFactory.limitTableSpace(<a name="line.324"></a>
-<span class="sourceLineNo">325</span>        tn, originalSizeLimit, violationPolicy);<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    admin.setQuota(settings);<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>    // Verify the Quotas in the table<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      ResultScanner scanner = quotaTable.getScanner(new Scan());<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      try {<a name="line.331"></a>
-<span class="sourceLineNo">332</span>        Result r = Iterables.getOnlyElement(scanner);<a name="line.332"></a>
-<span class="sourceLineNo">333</span>        CellScanner cells = r.cellScanner();<a name="line.333"></a>
-<span class="sourceLineNo">334</span>        assertTrue("Expected to find a cell", cells.advance());<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        assertSpaceQuota(originalSizeLimit, violationPolicy, cells.current());<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      } finally {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>        scanner.close();<a name="line.337"></a>
-<span class="sourceLineNo">338</span>      }<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    }<a name="line.339"></a>
-<span class="sourceLineNo">340</span><a name="line.340"></a>
-<span class="sourceLineNo">341</span>    // Verify we can retrieve it via the QuotaRetriever API<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    QuotaRetriever quotaScanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    try {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      assertSpaceQuota(originalSizeLimit, violationPolicy, Iterables.getOnlyElement(quotaScanner));<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    } finally {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      quotaScanner.close();<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    }<a name="line.347"></a>
-<span class="sourceLineNo">348</span><a name="line.348"></a>
-<span class="sourceLineNo">349</span>    // Setting a new size and policy should be reflected<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    final long newSizeLimit = 1024L * 1024L * 1024L * 1024L; // 1TB<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    final SpaceViolationPolicy newViolationPolicy = SpaceViolationPolicy.NO_WRITES_COMPACTIONS;<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    QuotaSettings newSettings = QuotaSettingsFactory.limitTableSpace(<a name="line.352"></a>
-<span class="sourceLineNo">353</span>        tn, newSizeLimit, newViolationPolicy);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    admin.setQuota(newSettings);<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span>    // Verify the new Quotas in the table<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      ResultScanner scanner = quotaTable.getScanner(new Scan());<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      try {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        Result r = Iterables.getOnlyElement(scanner);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        CellScanner cells = r.cellScanner();<a name="line.361"></a>
-<span class="sourceLineNo">362</span>        assertTrue("Expected to find a cell", cells.advance());<a name="line.362"></a>
-<span class="sourceLineNo">363</span>        assertSpaceQuota(newSizeLimit, newViolationPolicy, cells.current());<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      } finally {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>        scanner.close();<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      }<a name="line.366"></a>
+<span class="sourceLineNo">295</span>    for (String user: users) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      admin.setQuota(QuotaSettingsFactory.unthrottleUser(user));<a name="line.296"></a>
+<span class="sourceLineNo">297</span>      for (TableName table: tables) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        admin.setQuota(QuotaSettingsFactory.unthrottleUser(user, table));<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      }<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      for (String ns: namespaces) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        admin.setQuota(QuotaSettingsFactory.unthrottleUser(user, ns));<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      }<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    }<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    assertNumResults(6, null);<a name="line.304"></a>
+<span class="sourceLineNo">305</span><a name="line.305"></a>
+<span class="sourceLineNo">306</span>    for (TableName table: tables) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      admin.setQuota(QuotaSettingsFactory.unthrottleTable(table));<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    }<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    assertNumResults(3, null);<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>    for (String ns: namespaces) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>      admin.setQuota(QuotaSettingsFactory.unthrottleNamespace(ns));<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    assertNumResults(0, null);<a name="line.314"></a>
+<span class="sourceLineNo">315</span>  }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>  @Test<a name="line.317"></a>
+<span class="sourceLineNo">318</span>  public void testSetGetRemoveSpaceQuota() throws Exception {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    Admin admin = TEST_UTIL.getAdmin();<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    final TableName tn = TableName.valueOf("sq_table1");<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    final long sizeLimit = 1024L * 1024L * 1024L * 1024L * 5L; // 5TB<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    final SpaceViolationPolicy violationPolicy = SpaceViolationPolicy.NO_WRITES;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    QuotaSettings settings = QuotaSettingsFactory.limitTableSpace(tn, sizeLimit, violationPolicy);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    admin.setQuota(settings);<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span>    // Verify the Quotas in the table<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      ResultScanner scanner = quotaTable.getScanner(new Scan());<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      try {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        Result r = Iterables.getOnlyElement(scanner);<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CellScanner cells = r.cellScanner();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        assertTrue("Expected to find a cell", cells.advance());<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        assertSpaceQuota(sizeLimit, violationPolicy, cells.current());<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      } finally {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        scanner.close();<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>    // Verify we can retrieve it via the QuotaRetriever API<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    QuotaRetriever scanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    try {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      assertSpaceQuota(sizeLimit, violationPolicy, Iterables.getOnlyElement(scanner));<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    } finally {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      scanner.close();<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>    // Now, remove the quota<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    QuotaSettings removeQuota = QuotaSettingsFactory.removeTableSpaceLimit(tn);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    admin.setQuota(removeQuota);<a name="line.349"></a>
+<span class="sourceLineNo">350</span><a name="line.350"></a>
+<span class="sourceLineNo">351</span>    // Verify that the record doesn't exist in the table<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      ResultScanner rs = quotaTable.getScanner(new Scan());<a name="line.353"></a>
+<span class="sourceLineNo">354</span>      try {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        assertNull("Did not expect to find a quota entry", rs.next());<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      } finally {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        rs.close();<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>    // Verify that we can also not fetch it via the API<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    scanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    try {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      assertNull("Did not expect to find a quota entry", scanner.next());<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    } finally {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      scanner.close();<a name="line.366"></a>
 <span class="sourceLineNo">367</span>    }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>    // Verify we can retrieve the new quota via the QuotaRetriever API<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    quotaScanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    try {<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      assertSpaceQuota(newSizeLimit, newViolationPolicy, Iterables.getOnlyElement(quotaScanner));<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    } finally {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      quotaScanner.close();<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>    // Now, remove the quota<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    QuotaSettings removeQuota = QuotaSettingsFactory.removeTableSpaceLimit(tn);<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    admin.setQuota(removeQuota);<a name="line.379"></a>
-<span class="sourceLineNo">380</span><a name="line.380"></a>
-<span class="sourceLineNo">381</span>    // Verify that the record doesn't exist in the table<a name="line.381"></a>
-<span class="sourceLineNo">382</span>    try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      ResultScanner scanner = quotaTable.getScanner(new Scan());<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      try {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>        assertNull("Did not expect to find a quota entry", scanner.next());<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      } finally {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>        scanner.close();<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      }<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>    // Verify that we can also not fetch it via the API<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    quotaScanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    try {<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      assertNull("Did not expect to find a quota entry", quotaScanner.next());<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    } finally {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      quotaScanner.close();<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    }<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  }<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>  private void assertNumResults(int expected, final QuotaFilter filter) throws Exception {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    assertEquals(expected, countResults(filter));<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  }<a name="line.402"></a>
-<span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>  private void assertSpaceQuota(<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      long sizeLimit, SpaceViolationPolicy violationPolicy, Cell cell) throws Exception {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    Quotas q = QuotaTableUtil.quotasFromData(<a name="line.406"></a>
-<span class="sourceLineNo">407</span>        cell.getValueArray(), cell.getValueOffset(), cell.getValueLength());<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    assertTrue("Quota should have space quota defined", q.hasSpace());<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    QuotaProtos.SpaceQuota spaceQuota = q.getSpace();<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    assertEquals(sizeLimit, spaceQuota.getSoftLimit());<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    assertEquals(violationPolicy, ProtobufUtil.toViolationPolicy(spaceQuota.getViolationPolicy()));<a name="line.411"></a>
-<span class="sourceLineNo">412</span>  }<a name="line.412"></a>
-<span class="sourceLineNo">413</span><a name="line.413"></a>
-<span class="sourceLineNo">414</span>  private void assertSpaceQuota(<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      long sizeLimit, SpaceViolationPolicy violationPolicy, QuotaSettings actualSettings) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    assertTrue("The actual QuotaSettings was not an instance of " + SpaceLimitSettings.class<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        + " but of " + actualSettings.getClass(), actualSettings instanceof SpaceLimitSettings);<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    SpaceLimitRequest spaceLimitRequest = ((SpaceLimitSettings) actualSettings).getProto();<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    assertEquals(sizeLimit, spaceLimitRequest.getQuota().getSoftLimit());<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    assertEquals(violationPolicy,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>        ProtobufUtil.toViolationPolicy(spaceLimitRequest.getQuota().getViolationPolicy()));<a name="line.421"></a>
-<span class="sourceLineNo">422</span>  }<a name="line.422"></a>
-<span class="sourceLineNo">423</span><a name="line.423"></a>
-<span class="sourceLineNo">424</span>  private int countResults(final QuotaFilter filter) throws Exception {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    QuotaRetriever scanner = QuotaRetriever.open(TEST_UTIL.getConfiguration(), filter);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    try {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      int count = 0;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      for (QuotaSettings settings: scanner) {<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        LOG.debug(Objects.toString(settings));<a name="line.429"></a>
-<span class="sourceLineNo">430</span>        count++;<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      }<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return count;<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    } finally {<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      scanner.close();<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    }<a name="line.435"></a>
-<span class="sourceLineNo">436</span>  }<a name="line.436"></a>
-<span class="sourceLineNo">437</span>}<a name="line.437"></a>
+<span class="sourceLineNo">368</span>  }<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span>  @Test<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  public void testSetModifyRemoveQuota() throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    Admin admin = TEST_UTIL.getAdmin();<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    final TableName tn = TableName.valueOf("sq_table2");<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    final long originalSizeLimit = 1024L * 1024L * 1024L * 1024L * 5L; // 5TB<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    final SpaceViolationPolicy violationPolicy = SpaceViolationPolicy.NO_WRITES;<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    QuotaSettings settings = QuotaSettingsFactory.limitTableSpace(tn, originalSizeLimit,<a name="line.376"></a>
+<span class="sourceLineNo">377</span>        violationPolicy);<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    admin.setQuota(settings);<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>    // Verify the Quotas in the table<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>      ResultScanner scanner = quotaTable.getScanner(new Scan());<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      try {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        Result r = Iterables.getOnlyElement(scanner);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        CellScanner cells = r.cellScanner();<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        assertTrue("Expected to find a cell", cells.advance());<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        assertSpaceQuota(originalSizeLimit, violationPolicy, cells.current());<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      } finally {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        scanner.close();<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      }<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    }<a name="line.391"></a>
+<span class="sourceLineNo">392</span><a name="line.392"></a>
+<span class="sourceLineNo">393</span>    // Verify we can retrieve it via the QuotaRetriever API<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    QuotaRetriever quotaScanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    try {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>      assertSpaceQuota(originalSizeLimit, violationPolicy, Iterables.getOnlyElement(quotaScanner));<a name="line.396"></a>
+<span class="sourceLineNo">397</span>    } finally {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>      quotaScanner.close();<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    }<a name="line.399"></a>
+<span class="sourceLineNo">400</span><a name="line.400"></a>
+<span class="sourceLineNo">401</span>    // Setting a new size and policy should be reflected<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    final long newSizeLimit = 1024L * 1024L * 1024L * 1024L; // 1TB<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    final SpaceViolationPolicy newViolationPolicy = SpaceViolationPolicy.NO_WRITES_COMPACTIONS;<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    QuotaSettings newSettings = QuotaSettingsFactory.limitTableSpace(tn, newSizeLimit,<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        newViolationPolicy);<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    admin.setQuota(newSettings);<a name="line.406"></a>
+<span class="sourceLineNo">407</span><a name="line.407"></a>
+<span class="sourceLineNo">408</span>    // Verify the new Quotas in the table<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      ResultScanner scanner = quotaTable.getScanner(new Scan());<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      try {<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        Result r = Iterables.getOnlyElement(scanner);<a name="line.412"></a>
+<span class="sourceLineNo">413</span>        CellScanner cells = r.cellScanner();<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        assertTrue("Expected to find a cell", cells.advance());<a name="line.414"></a>
+<span class="sourceLineNo">415</span>        assertSpaceQuota(newSizeLimit, newViolationPolicy, cells.current());<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      } finally {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        scanner.close();<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      }<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>    // Verify we can retrieve the new quota via the QuotaRetriever API<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    quotaScanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    try {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      assertSpaceQuota(newSizeLimit, newViolationPolicy, Iterables.getOnlyElement(quotaScanner));<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    } finally {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      quotaScanner.close();<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    }<a name="line.427"></a>
+<span class="sourceLineNo">428</span><a name="line.428"></a>
+<span class="sourceLineNo">429</span>    // Now, remove the quota<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    QuotaSettings removeQuota = QuotaSettingsFactory.removeTableSpaceLimit(tn);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    admin.setQuota(removeQuota);<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>    // Verify that the record doesn't exist in the table<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    try (Table quotaTable = TEST_UTIL.getConnection().getTable(QuotaTableUtil.QUOTA_TABLE_NAME)) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      ResultScanner scanner = quotaTable.getScanner(new Scan());<a name="line.435"></a>
+<span class="sourceLineNo">436</span>      try {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        assertNull("Did not expect to find a quota entry", scanner.next());<a name="line.437"></a>
+<span class="sourceLineNo">438</span>      } finally {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        scanner.close();<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      }<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    }<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span>    // Verify that we can also not fetch it via the API<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    quotaScanner = QuotaRetriever.open(admin.getConfiguration());<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    try {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      assertNull("Did not expect to find a quota entry", quotaScanner.next());<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    } finally {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>      quotaScanner.close();<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    }<a name="line.449"></a>
+<span class="sourceLineNo">450</span>  }<a name="line.450"></a>
+<span class="sourceLineNo">451</span><a name="line.451"></a>
+<span class="sourceLineNo">452</span>  private void assertNumResults(int expected, final QuotaFilter filter) throws Exception {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>    assertEquals(expected, countResults(filter));<a name="line.453"></a>
+<span class="sourceLineNo">454</span>  }<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>  private void assertSpaceQuota(<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      long sizeLimit, SpaceViolationPolicy violationPolicy, Cell cell) throws Exception {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    Quotas q = QuotaTableUtil.quotasFromData(<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        cell.getValueArray(), cell.getValueOffset(), cell.getValueLength());<a name="line.459"></a>
+<span class="sourceLineNo">460</span>    assertTrue("Quota should have space quota defined", q.hasSpace());<a name="line.460"></a>
+<span class="sourceLineNo">461</span>    QuotaProtos.SpaceQuota spaceQuota = q.getSpace();<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    assertEquals(sizeLimit, spaceQuota.getSoftLimit());<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    assertEquals(violationPolicy, ProtobufUtil.toViolationPolicy(spaceQuota.getViolationPolicy()));<a name="line.463"></a>
+<span class="sourceLineNo">464</span>  }<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>  private void assertSpaceQuota(<a name="line.466"></a>
+<span class="sourceLineNo">467</span>      long sizeLimit, SpaceViolationPolicy violationPolicy, QuotaSettings actualSettings) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span>    assertTrue("The actual QuotaSettings was not an instance of " + SpaceLimitSettings.class<a name="line.468"></a>
+<span class="sourceLineNo">469</span>        + " but of " + actualSettings.getClass(), actualSettings instanceof SpaceLimitSettings);<a name="line.469"></a>
+<span class="sourceLineNo">470</span>    SpaceLimitRequest spaceLimitRequest = ((SpaceLimitSettings) actualSettings).getProto();<a name="line.470"></a>
+<span class="sourceLineNo">471</span>    assertEquals(sizeLimit, spaceLimitRequest.getQuota().getSoftLimit());<a name="line.471"></a>
+<span class="sourceLineNo">472</span>    assertEquals(violationPolicy,<a name="line.472"></a>
+<span class="sourceLineNo">473</span>        ProtobufUtil.toViolationPolicy(spaceLimitRequest.getQuota().getViolationPolicy()));<a name="line.473"></a>
+<span class="sourceLineNo">474</span>  }<a name="line.474"></a>
+<span class="sourceLineNo">475</span><a name="line.475"></a>
+<span class="sourceLineNo">476</span>  private int countResults(final QuotaFilter filter) throws Exception {<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    QuotaRetriever scanner = QuotaRetriever.open(TEST_UTIL.getConfiguration(), filter);<a name="line.477"></a>
+<span class="sourceLineNo">478</span>    try {<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      int count = 0;<a name="line.479"></a>
+<span class="sourceLineNo">480</span>      for (QuotaSettings settings: scanner) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>        LOG.debug(Objects.toString(settings));<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        count++;<a name="line.482"></a>
+<span class="sourceLineNo">483</span>      }<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      return count;<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    } finally {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>      scanner.close();<a name="line.486"></a>
+<span class="sourceLineNo">487</span>    }<a name="line.487"></a>
+<span class="sourceLineNo">488</span>  }<a name="line.488"></a>
+<span class="sourceLineNo">489</span>}<a name="line.489"></a>
 
 
 


[30/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html b/devapidocs/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html
index 6082ea4..e87e313 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html
@@ -308,7 +308,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota
 <pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html#line.45">checkQuota</a>(int&nbsp;numWrites,
                        int&nbsp;numReads,
                        int&nbsp;numScans)
-                throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+                throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html#checkQuota-int-int-int-">OperationQuota</a></code></span></div>
 <div class="block">Checks if it is possible to execute the specified operation.
  The quota will be estimated based on the number of operations to perform
@@ -321,7 +321,8 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota
 <dd><code>numReads</code> - number of small-read operation that will be performed</dd>
 <dd><code>numScans</code> - number of long-read operation that will be performed</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code> - if the operation cannot be performed</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - if the operation cannot be performed because
+   RPC quota is exceeded.</dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html b/devapidocs/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
index 6c123ea..6c14ab4 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
@@ -285,7 +285,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
 <h4>checkQuota</h4>
 <pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#line.38">checkQuota</a>(long&nbsp;estimateWriteSize,
                        long&nbsp;estimateReadSize)
-                throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+                throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-">QuotaLimiter</a></code></span></div>
 <div class="block">Checks if it is possible to execute the specified operation.</div>
 <dl>
@@ -295,7 +295,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
 <dd><code>estimateWriteSize</code> - the write size that will be checked against the available quota</dd>
 <dd><code>estimateReadSize</code> - the read size that will be checked against the available quota</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code> - thrown if not enough avialable resources to perform operation.</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - thrown if not enough avialable resources to perform operation.</dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/OperationQuota.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/OperationQuota.html b/devapidocs/org/apache/hadoop/hbase/quotas/OperationQuota.html
index 72a5529..1a6bf98 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/OperationQuota.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/OperationQuota.html
@@ -207,10 +207,10 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
 <ul class="blockList">
 <li class="blockList">
 <h4>checkQuota</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.46">checkQuota</a>(int&nbsp;numWrites,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.47">checkQuota</a>(int&nbsp;numWrites,
                 int&nbsp;numReads,
                 int&nbsp;numScans)
-         throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+         throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
 <div class="block">Checks if it is possible to execute the specified operation.
  The quota will be estimated based on the number of operations to perform
  and the average size accumulated during time.</div>
@@ -220,7 +220,8 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
 <dd><code>numReads</code> - number of small-read operation that will be performed</dd>
 <dd><code>numScans</code> - number of long-read operation that will be performed</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code> - if the operation cannot be performed</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - if the operation cannot be performed because
+   RPC quota is exceeded.</dd>
 </dl>
 </li>
 </ul>
@@ -230,7 +231,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.50">close</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.51">close</a>()</pre>
 <div class="block">Cleanup method on operation completion</div>
 </li>
 </ul>
@@ -240,7 +241,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
 <ul class="blockList">
 <li class="blockList">
 <h4>addGetResult</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.56">addGetResult</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;result)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.57">addGetResult</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;result)</pre>
 <div class="block">Add a get result. This will be used to calculate the exact quota and
  have a better short-read average size for the next time.</div>
 </li>
@@ -251,7 +252,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
 <ul class="blockList">
 <li class="blockList">
 <h4>addScanResult</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.62">addScanResult</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;&nbsp;results)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.63">addScanResult</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;&nbsp;results)</pre>
 <div class="block">Add a scan result. This will be used to calculate the exact quota and
  have a better long-read average size for the next time.</div>
 </li>
@@ -262,7 +263,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
 <ul class="blockList">
 <li class="blockList">
 <h4>addMutation</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.68">addMutation</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;mutation)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.69">addMutation</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;mutation)</pre>
 <div class="block">Add a mutation result. This will be used to calculate the exact quota and
  have a better mutation average size for the next time.</div>
 </li>
@@ -273,7 +274,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadAvailable</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.71">getReadAvailable</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.72">getReadAvailable</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the number of bytes available to read to avoid exceeding the quota</dd>
@@ -286,7 +287,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getWriteAvailable</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.74">getWriteAvailable</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html#line.75">getWriteAvailable</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the number of bytes available to write to avoid exceeding the quota</dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/QuotaLimiter.html b/devapidocs/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
index 6096683..38992fc 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
@@ -188,14 +188,14 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
 <h4>checkQuota</h4>
 <pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html#line.38">checkQuota</a>(long&nbsp;estimateWriteSize,
                 long&nbsp;estimateReadSize)
-         throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+         throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
 <div class="block">Checks if it is possible to execute the specified operation.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>estimateWriteSize</code> - the write size that will be checked against the available quota</dd>
 <dd><code>estimateReadSize</code> - the read size that will be checked against the available quota</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code> - thrown if not enough avialable resources to perform operation.</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - thrown if not enough avialable resources to perform operation.</dd>
 </dl>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html b/devapidocs/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html
index 118adb0..5388bef 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html
@@ -369,7 +369,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html#line.132">checkQuota</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;region,
                                  <a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas">OperationQuota.OperationType</a>&nbsp;type)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
-                                 <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+                                 <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
 <div class="block">Check the quota for the current (rpc-context) user.
  Returns the OperationQuota used to get the available quota and
  to report the data/usage of the operation.</div>
@@ -380,7 +380,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the OperationQuota</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code> - if the operation cannot be executed due to quota exceeded.</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - if the operation cannot be executed due to quota exceeded.</dd>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>
 </li>
@@ -394,7 +394,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html#line.151">checkQuota</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;region,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.Action&gt;&nbsp;actions)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
-                                 <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+                                 <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
 <div class="block">Check the quota for the current (rpc-context) user.
  Returns the OperationQuota used to get the available quota and
  to report the data/usage of the operation.</div>
@@ -405,7 +405,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the OperationQuota</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code> - if the operation cannot be executed due to quota exceeded.</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - if the operation cannot be executed due to quota exceeded.</dd>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>
 </li>
@@ -421,7 +421,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                   int&nbsp;numReads,
                                   int&nbsp;numScans)
                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
-                                  <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+                                  <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
 <div class="block">Check the quota for the current (rpc-context) user.
  Returns the OperationQuota used to get the available quota and
  to report the data/usage of the operation.</div>
@@ -434,7 +434,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the OperationQuota</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code> - if the operation cannot be executed due to quota exceeded.</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - if the operation cannot be executed due to quota exceeded.</dd>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html b/devapidocs/org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html
index f31f482..8535053 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStoreFactory.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html" target="_top">Frames</a></li>
@@ -499,7 +499,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStor
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStoreFactory.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html b/devapidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
new file mode 100644
index 0000000..953c57b
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
@@ -0,0 +1,395 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RpcThrottlingException.Type (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RpcThrottlingException.Type (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RpcThrottlingException.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.quotas</div>
+<h2 title="Enum RpcThrottlingException.Type" class="title">Enum RpcThrottlingException.Type</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>@InterfaceAudience.Public
+public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.30">RpcThrottlingException.Type</a>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&gt;</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#NumReadRequestsExceeded">NumReadRequestsExceeded</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#NumRequestsExceeded">NumRequestsExceeded</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#NumWriteRequestsExceeded">NumWriteRequestsExceeded</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#ReadSizeExceeded">ReadSizeExceeded</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#RequestSizeExceeded">RequestSizeExceeded</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#WriteSizeExceeded">WriteSizeExceeded</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/
 8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="NumRequestsExceeded">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NumRequestsExceeded</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.31">NumRequestsExceeded</a></pre>
+</li>
+</ul>
+<a name="RequestSizeExceeded">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RequestSizeExceeded</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.31">RequestSizeExceeded</a></pre>
+</li>
+</ul>
+<a name="NumReadRequestsExceeded">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NumReadRequestsExceeded</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.31">NumReadRequestsExceeded</a></pre>
+</li>
+</ul>
+<a name="NumWriteRequestsExceeded">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NumWriteRequestsExceeded</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.31">NumWriteRequestsExceeded</a></pre>
+</li>
+</ul>
+<a name="WriteSizeExceeded">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WriteSizeExceeded</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.32">WriteSizeExceeded</a></pre>
+</li>
+</ul>
+<a name="ReadSizeExceeded">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ReadSizeExceeded</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.32">ReadSizeExceeded</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.30">values</a>()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (RpcThrottlingException.Type c : RpcThrottlingException.Type.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#line.30">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RpcThrottlingException.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html b/devapidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
new file mode 100644
index 0000000..9fb519b
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
@@ -0,0 +1,579 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RpcThrottlingException (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RpcThrottlingException (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RpcThrottlingException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.quotas</div>
+<h2 title="Class RpcThrottlingException" class="title">Class RpcThrottlingException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">java.io.IOException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">org.apache.hadoop.hbase.HBaseIOException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.quotas.RpcThrottlingException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>@InterfaceAudience.Public
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.27">RpcThrottlingException</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
+<div class="block">Describe the throttling result. TODO: At some point this will be handled on the client side to
+ prevent operation to go on the server if the waitInterval is greater than the one got as result
+ of this exception.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../serialized-form.html#org.apache.hadoop.hbase.quotas.RpcThrottlingException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#MSG_TYPE">MSG_TYPE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#MSG_WAIT">MSG_WAIT</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#type">type</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#waitInterval">waitInterval</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-java.lang.String-">RpcThrottlingException</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&nbsp;type,
+                      long&nbsp;waitInterval,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-java.lang.String-">RpcThrottlingException</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getType--">getType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getWaitInterval--">getWaitInterval</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>private static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-">throwThrottlingException</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&nbsp;type,
+                        long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>private static long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#timeFromString-java.lang.String-">timeFromString</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timeDiff)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or
  interface in java.lang">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/
 api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="MSG_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MSG_TYPE</h4>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.35">MSG_TYPE</a></pre>
+</li>
+</ul>
+<a name="MSG_WAIT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MSG_WAIT</h4>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.40">MSG_WAIT</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.quotas.RpcThrottlingException.MSG_WAIT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="waitInterval">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>waitInterval</h4>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.42">waitInterval</a></pre>
+</li>
+</ul>
+<a name="type">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>type</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.43">type</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="RpcThrottlingException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RpcThrottlingException</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.45">RpcThrottlingException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
+</li>
+</ul>
+<a name="RpcThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RpcThrottlingException</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.61">RpcThrottlingException</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&nbsp;type,
+                              long&nbsp;waitInterval,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.67">getType</a>()</pre>
+</li>
+</ul>
+<a name="getWaitInterval--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWaitInterval</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.71">getWaitInterval</a>()</pre>
+</li>
+</ul>
+<a name="throwNumRequestsExceeded-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwNumRequestsExceeded</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.75">throwNumRequestsExceeded</a>(long&nbsp;waitInterval)
+                                     throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwRequestSizeExceeded-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwRequestSizeExceeded</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.80">throwRequestSizeExceeded</a>(long&nbsp;waitInterval)
+                                     throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwNumReadRequestsExceeded-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwNumReadRequestsExceeded</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.85">throwNumReadRequestsExceeded</a>(long&nbsp;waitInterval)
+                                         throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwNumWriteRequestsExceeded-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwNumWriteRequestsExceeded</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.90">throwNumWriteRequestsExceeded</a>(long&nbsp;waitInterval)
+                                          throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwWriteSizeExceeded-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwWriteSizeExceeded</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.95">throwWriteSizeExceeded</a>(long&nbsp;waitInterval)
+                                   throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwReadSizeExceeded-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwReadSizeExceeded</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.99">throwReadSizeExceeded</a>(long&nbsp;waitInterval)
+                                  throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwThrottlingException</h4>
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.103">throwThrottlingException</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&nbsp;type,
+                                             long&nbsp;waitInterval)
+                                      throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="timeFromString-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>timeFromString</h4>
+<pre>private static&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.109">timeFromString</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timeDiff)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RpcThrottlingException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html b/devapidocs/org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html
index 799ccd2..f4041a6 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -665,7 +665,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStoreImpl.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">


[19/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.ExceptionInjector.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.ExceptionInjector.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.ExceptionInjector.html
index 7b206fe..39db60b 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.ExceptionInjector.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.ExceptionInjector.html
@@ -39,7 +39,7 @@
 <span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.31"></a>
 <span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.32"></a>
 <span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.34"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.RpcThrottlingException;<a name="line.34"></a>
 <span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.35"></a>
 <span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.37"></a>
@@ -201,12 +201,12 @@
 <span class="sourceLineNo">193</span><a name="line.193"></a>
 <span class="sourceLineNo">194</span>  public static List&lt;Throwable&gt; metaCachePreservingExceptions() {<a name="line.194"></a>
 <span class="sourceLineNo">195</span>    return new ArrayList&lt;Throwable&gt;() {{<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      add(new RegionOpeningException(" "));<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      add(new ThrottlingException(" "));<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      add(new RetryImmediatelyException(" "));<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      add(new CallQueueTooBigException());<a name="line.201"></a>
+<span class="sourceLineNo">196</span>        add(new RegionOpeningException(" "));<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        add(new RpcThrottlingException(" "));<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        add(new RetryImmediatelyException(" "));<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        add(new CallQueueTooBigException());<a name="line.201"></a>
 <span class="sourceLineNo">202</span>    }};<a name="line.202"></a>
 <span class="sourceLineNo">203</span>  }<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.FakeRSRpcServices.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.FakeRSRpcServices.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.FakeRSRpcServices.html
index 7b206fe..39db60b 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.FakeRSRpcServices.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.FakeRSRpcServices.html
@@ -39,7 +39,7 @@
 <span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.31"></a>
 <span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.32"></a>
 <span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.34"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.RpcThrottlingException;<a name="line.34"></a>
 <span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.35"></a>
 <span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.37"></a>
@@ -201,12 +201,12 @@
 <span class="sourceLineNo">193</span><a name="line.193"></a>
 <span class="sourceLineNo">194</span>  public static List&lt;Throwable&gt; metaCachePreservingExceptions() {<a name="line.194"></a>
 <span class="sourceLineNo">195</span>    return new ArrayList&lt;Throwable&gt;() {{<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      add(new RegionOpeningException(" "));<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      add(new ThrottlingException(" "));<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      add(new RetryImmediatelyException(" "));<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      add(new CallQueueTooBigException());<a name="line.201"></a>
+<span class="sourceLineNo">196</span>        add(new RegionOpeningException(" "));<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        add(new RpcThrottlingException(" "));<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        add(new RetryImmediatelyException(" "));<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        add(new CallQueueTooBigException());<a name="line.201"></a>
 <span class="sourceLineNo">202</span>    }};<a name="line.202"></a>
 <span class="sourceLineNo">203</span>  }<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RegionServerWithFakeRpcServices.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RegionServerWithFakeRpcServices.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RegionServerWithFakeRpcServices.html
index 7b206fe..39db60b 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RegionServerWithFakeRpcServices.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RegionServerWithFakeRpcServices.html
@@ -39,7 +39,7 @@
 <span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.31"></a>
 <span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.32"></a>
 <span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.34"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.RpcThrottlingException;<a name="line.34"></a>
 <span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.35"></a>
 <span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.37"></a>
@@ -201,12 +201,12 @@
 <span class="sourceLineNo">193</span><a name="line.193"></a>
 <span class="sourceLineNo">194</span>  public static List&lt;Throwable&gt; metaCachePreservingExceptions() {<a name="line.194"></a>
 <span class="sourceLineNo">195</span>    return new ArrayList&lt;Throwable&gt;() {{<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      add(new RegionOpeningException(" "));<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      add(new ThrottlingException(" "));<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      add(new RetryImmediatelyException(" "));<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      add(new CallQueueTooBigException());<a name="line.201"></a>
+<span class="sourceLineNo">196</span>        add(new RegionOpeningException(" "));<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        add(new RpcThrottlingException(" "));<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        add(new RetryImmediatelyException(" "));<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        add(new CallQueueTooBigException());<a name="line.201"></a>
 <span class="sourceLineNo">202</span>    }};<a name="line.202"></a>
 <span class="sourceLineNo">203</span>  }<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RoundRobinExceptionInjector.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RoundRobinExceptionInjector.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RoundRobinExceptionInjector.html
index 7b206fe..39db60b 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RoundRobinExceptionInjector.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.RoundRobinExceptionInjector.html
@@ -39,7 +39,7 @@
 <span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.31"></a>
 <span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.32"></a>
 <span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.34"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.RpcThrottlingException;<a name="line.34"></a>
 <span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.35"></a>
 <span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.37"></a>
@@ -201,12 +201,12 @@
 <span class="sourceLineNo">193</span><a name="line.193"></a>
 <span class="sourceLineNo">194</span>  public static List&lt;Throwable&gt; metaCachePreservingExceptions() {<a name="line.194"></a>
 <span class="sourceLineNo">195</span>    return new ArrayList&lt;Throwable&gt;() {{<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      add(new RegionOpeningException(" "));<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      add(new ThrottlingException(" "));<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      add(new RetryImmediatelyException(" "));<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      add(new CallQueueTooBigException());<a name="line.201"></a>
+<span class="sourceLineNo">196</span>        add(new RegionOpeningException(" "));<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        add(new RpcThrottlingException(" "));<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        add(new RetryImmediatelyException(" "));<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        add(new CallQueueTooBigException());<a name="line.201"></a>
 <span class="sourceLineNo">202</span>    }};<a name="line.202"></a>
 <span class="sourceLineNo">203</span>  }<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.html
index 7b206fe..39db60b 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMetaCache.html
@@ -39,7 +39,7 @@
 <span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.31"></a>
 <span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.exceptions.ClientExceptionsUtil;<a name="line.32"></a>
 <span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.34"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.quotas.RpcThrottlingException;<a name="line.34"></a>
 <span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.35"></a>
 <span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.37"></a>
@@ -201,12 +201,12 @@
 <span class="sourceLineNo">193</span><a name="line.193"></a>
 <span class="sourceLineNo">194</span>  public static List&lt;Throwable&gt; metaCachePreservingExceptions() {<a name="line.194"></a>
 <span class="sourceLineNo">195</span>    return new ArrayList&lt;Throwable&gt;() {{<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      add(new RegionOpeningException(" "));<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      add(new ThrottlingException(" "));<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      add(new RetryImmediatelyException(" "));<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      add(new CallQueueTooBigException());<a name="line.201"></a>
+<span class="sourceLineNo">196</span>        add(new RegionOpeningException(" "));<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        add(new RegionTooBusyException("Some old message"));<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        add(new RpcThrottlingException(" "));<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        add(new MultiActionResultTooLarge(" "));<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        add(new RetryImmediatelyException(" "));<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        add(new CallQueueTooBigException());<a name="line.201"></a>
 <span class="sourceLineNo">202</span>    }};<a name="line.202"></a>
 <span class="sourceLineNo">203</span>  }<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html
index 19c72a2..f6a8245 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html
@@ -104,213 +104,219 @@
 <span class="sourceLineNo">096</span>    admin1.modifyTable(tableName, table);<a name="line.96"></a>
 <span class="sourceLineNo">097</span>    admin1.enableTable(tableName);<a name="line.97"></a>
 <span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>    admin1.disableTableReplication(tableName);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    table = admin1.getTableDescriptor(tableName);<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      assertEquals(HConstants.REPLICATION_SCOPE_LOCAL, fam.getScope());<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>  @Test<a name="line.107"></a>
-<span class="sourceLineNo">108</span>  public void testEnableReplicationWhenSlaveClusterDoesntHaveTable() throws Exception {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    admin1.disableTableReplication(tableName);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    admin2.disableTable(tableName);<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    admin2.deleteTable(tableName);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    assertFalse(admin2.tableExists(tableName));<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    admin1.enableTableReplication(tableName);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    assertTrue(admin2.tableExists(tableName));<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  }<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span>  @Test<a name="line.117"></a>
-<span class="sourceLineNo">118</span>  public void testEnableReplicationWhenReplicationNotEnabled() throws Exception {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    HTableDescriptor table = new HTableDescriptor(admin1.getTableDescriptor(tableName));<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>      fam.setScope(HConstants.REPLICATION_SCOPE_LOCAL);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    admin1.disableTable(tableName);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    admin1.modifyTable(tableName, table);<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    admin1.enableTable(tableName);<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>    admin2.disableTable(tableName);<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    admin2.modifyTable(tableName, table);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    admin2.enableTable(tableName);<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>    admin1.enableTableReplication(tableName);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    table = admin1.getTableDescriptor(tableName);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    }<a name="line.135"></a>
-<span class="sourceLineNo">136</span>  }<a name="line.136"></a>
-<span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span>  @Test<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  public void testEnableReplicationWhenTableDescriptorIsNotSameInClusters() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    HTableDescriptor table = new HTableDescriptor(admin2.getTableDescriptor(tableName));<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    HColumnDescriptor f = new HColumnDescriptor("newFamily");<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    table.addFamily(f);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    admin2.disableTable(tableName);<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    admin2.modifyTable(tableName, table);<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    admin2.enableTable(tableName);<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>    try {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      admin1.enableTableReplication(tableName);<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      fail("Exception should be thrown if table descriptors in the clusters are not same.");<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    } catch (RuntimeException ignored) {<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span>    }<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    admin1.disableTable(tableName);<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    admin1.modifyTable(tableName, table);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    admin1.enableTable(tableName);<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    admin1.enableTableReplication(tableName);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    table = admin1.getTableDescriptor(tableName);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    }<a name="line.160"></a>
-<span class="sourceLineNo">161</span>  }<a name="line.161"></a>
+<span class="sourceLineNo">099</span>    admin1.disableTableReplication(tableName);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    table = admin1.getTableDescriptor(tableName);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>      assertEquals(HConstants.REPLICATION_SCOPE_LOCAL, fam.getScope());<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    }<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span>    admin1.deleteColumnFamily(table.getTableName(), f.getName());<a name="line.105"></a>
+<span class="sourceLineNo">106</span>  }<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>  @Test<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  public void testEnableReplicationWhenSlaveClusterDoesntHaveTable() throws Exception {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    admin1.disableTableReplication(tableName);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    admin2.disableTable(tableName);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    admin2.deleteTable(tableName);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    assertFalse(admin2.tableExists(tableName));<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    admin1.enableTableReplication(tableName);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    assertTrue(admin2.tableExists(tableName));<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span>  @Test<a name="line.118"></a>
+<span class="sourceLineNo">119</span>  public void testEnableReplicationWhenReplicationNotEnabled() throws Exception {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    HTableDescriptor table = new HTableDescriptor(admin1.getTableDescriptor(tableName));<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      fam.setScope(HConstants.REPLICATION_SCOPE_LOCAL);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    admin1.disableTable(tableName);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    admin1.modifyTable(tableName, table);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    admin1.enableTable(tableName);<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>    admin2.disableTable(tableName);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    admin2.modifyTable(tableName, table);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    admin2.enableTable(tableName);<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>    admin1.enableTableReplication(tableName);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    table = admin1.getTableDescriptor(tableName);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    }<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>  @Test<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  public void testEnableReplicationWhenTableDescriptorIsNotSameInClusters() throws Exception {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    HTableDescriptor table = new HTableDescriptor(admin2.getTableDescriptor(tableName));<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    HColumnDescriptor f = new HColumnDescriptor("newFamily");<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    table.addFamily(f);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    admin2.disableTable(tableName);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    admin2.modifyTable(tableName, table);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    admin2.enableTable(tableName);<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>    try {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      admin1.enableTableReplication(tableName);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      fail("Exception should be thrown if table descriptors in the clusters are not same.");<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    } catch (RuntimeException ignored) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span><a name="line.152"></a>
+<span class="sourceLineNo">153</span>    }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    admin1.disableTable(tableName);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    admin1.modifyTable(tableName, table);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    admin1.enableTable(tableName);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    admin1.enableTableReplication(tableName);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    table = admin1.getTableDescriptor(tableName);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    }<a name="line.161"></a>
 <span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>  @Test<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  public void testDisableAndEnableReplication() throws Exception {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    admin1.disableTableReplication(tableName);<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    HTableDescriptor table = admin1.getTableDescriptor(tableName);<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      assertEquals(HConstants.REPLICATION_SCOPE_LOCAL, fam.getScope());<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    admin1.enableTableReplication(tableName);<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    table = admin1.getTableDescriptor(tableName);<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  }<a name="line.175"></a>
-<span class="sourceLineNo">176</span><a name="line.176"></a>
-<span class="sourceLineNo">177</span>  @Test(expected = TableNotFoundException.class)<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  public void testDisableReplicationForNonExistingTable() throws Exception {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    admin1.disableTableReplication(TableName.valueOf(name.getMethodName()));<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  }<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
-<span class="sourceLineNo">182</span>  @Test(expected = TableNotFoundException.class)<a name="line.182"></a>
-<span class="sourceLineNo">183</span>  public void testEnableReplicationForNonExistingTable() throws Exception {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    admin1.enableTableReplication(TableName.valueOf(name.getMethodName()));<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  }<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>  @Test(expected = IllegalArgumentException.class)<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  public void testDisableReplicationWhenTableNameAsNull() throws Exception {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    admin1.disableTableReplication(null);<a name="line.189"></a>
-<span class="sourceLineNo">190</span>  }<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>  @Test(expected = IllegalArgumentException.class)<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  public void testEnableReplicationWhenTableNameAsNull() throws Exception {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    admin1.enableTableReplication(null);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  /*<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   * Test enable table replication should create table only in user explicit specified table-cfs.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   * HBASE-14717<a name="line.199"></a>
-<span class="sourceLineNo">200</span>   */<a name="line.200"></a>
-<span class="sourceLineNo">201</span>  @Test<a name="line.201"></a>
-<span class="sourceLineNo">202</span>  public void testEnableReplicationForExplicitSetTableCfs() throws Exception {<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    final TableName tableName = TableName.valueOf(name.getMethodName());<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    String peerId = "2";<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    if (admin2.isTableAvailable(TestReplicationBase.tableName)) {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      admin2.disableTable(TestReplicationBase.tableName);<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      admin2.deleteTable(TestReplicationBase.tableName);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    assertFalse("Table should not exists in the peer cluster",<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>    // update peer config<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    ReplicationPeerConfig rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    rpc.setReplicateAllUserTables(false);<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    admin1.updateReplicationPeerConfig(peerId, rpc);<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span>    Map&lt;TableName, ? extends Collection&lt;String&gt;&gt; tableCfs = new HashMap&lt;&gt;();<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    tableCfs.put(tableName, null);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    try {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      adminExt.setPeerTableCFs(peerId, tableCfs);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      admin1.enableTableReplication(TestReplicationBase.tableName);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      assertFalse("Table should not be created if user has set table cfs explicitly for the "<a name="line.222"></a>
-<span class="sourceLineNo">223</span>          + "peer and this is not part of that collection",<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>      tableCfs.put(TestReplicationBase.tableName, null);<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      adminExt.setPeerTableCFs(peerId, tableCfs);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      admin1.enableTableReplication(TestReplicationBase.tableName);<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      assertTrue(<a name="line.229"></a>
-<span class="sourceLineNo">230</span>        "Table should be created if user has explicitly added table into table cfs collection",<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    } finally {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      adminExt.removePeerTableCFs(peerId, adminExt.getPeerTableCFs(peerId));<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      admin1.disableTableReplication(TestReplicationBase.tableName);<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span>      rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      rpc.setReplicateAllUserTables(true);<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      admin1.updateReplicationPeerConfig(peerId, rpc);<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    }<a name="line.239"></a>
-<span class="sourceLineNo">240</span>  }<a name="line.240"></a>
-<span class="sourceLineNo">241</span><a name="line.241"></a>
-<span class="sourceLineNo">242</span>  @Test<a name="line.242"></a>
-<span class="sourceLineNo">243</span>  public void testReplicationPeerConfigUpdateCallback() throws Exception {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    String peerId = "1";<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    rpc.setClusterKey(utility2.getClusterKey());<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    rpc.setReplicationEndpointImpl(TestUpdatableReplicationEndpoint.class.getName());<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    rpc.getConfiguration().put("key1", "value1");<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>    admin1.addReplicationPeer(peerId, rpc);<a name="line.250"></a>
-<span class="sourceLineNo">251</span><a name="line.251"></a>
-<span class="sourceLineNo">252</span>    rpc.getConfiguration().put("key1", "value2");<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    admin.updatePeerConfig(peerId, rpc);<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    if (!TestUpdatableReplicationEndpoint.hasCalledBack()) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      synchronized(TestUpdatableReplicationEndpoint.class) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        TestUpdatableReplicationEndpoint.class.wait(2000L);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      }<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    }<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>    assertEquals(true, TestUpdatableReplicationEndpoint.hasCalledBack());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  public static class TestUpdatableReplicationEndpoint extends BaseReplicationEndpoint {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    private static boolean calledBack = false;<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    public static boolean hasCalledBack(){<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      return calledBack;<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    }<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    @Override<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    public synchronized void peerConfigUpdated(ReplicationPeerConfig rpc){<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      calledBack = true;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      notifyAll();<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    }<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">163</span>    admin1.deleteColumnFamily(tableName, f.getName());<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    admin2.deleteColumnFamily(tableName, f.getName());<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>  @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  public void testDisableAndEnableReplication() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    admin1.disableTableReplication(tableName);<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    HTableDescriptor table = admin1.getTableDescriptor(tableName);<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      assertEquals(HConstants.REPLICATION_SCOPE_LOCAL, fam.getScope());<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    admin1.enableTableReplication(tableName);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    table = admin1.getTableDescriptor(tableName);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    for (HColumnDescriptor fam : table.getColumnFamilies()) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>      assertEquals(HConstants.REPLICATION_SCOPE_GLOBAL, fam.getScope());<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>  @Test(expected = TableNotFoundException.class)<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  public void testDisableReplicationForNonExistingTable() throws Exception {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    admin1.disableTableReplication(TableName.valueOf(name.getMethodName()));<a name="line.183"></a>
+<span class="sourceLineNo">184</span>  }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>  @Test(expected = TableNotFoundException.class)<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  public void testEnableReplicationForNonExistingTable() throws Exception {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    admin1.enableTableReplication(TableName.valueOf(name.getMethodName()));<a name="line.188"></a>
+<span class="sourceLineNo">189</span>  }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>  @Test(expected = IllegalArgumentException.class)<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  public void testDisableReplicationWhenTableNameAsNull() throws Exception {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    admin1.disableTableReplication(null);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>  @Test(expected = IllegalArgumentException.class)<a name="line.196"></a>
+<span class="sourceLineNo">197</span>  public void testEnableReplicationWhenTableNameAsNull() throws Exception {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    admin1.enableTableReplication(null);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>  }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>  /*<a name="line.201"></a>
+<span class="sourceLineNo">202</span>   * Test enable table replication should create table only in user explicit specified table-cfs.<a name="line.202"></a>
+<span class="sourceLineNo">203</span>   * HBASE-14717<a name="line.203"></a>
+<span class="sourceLineNo">204</span>   */<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  @Test<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  public void testEnableReplicationForExplicitSetTableCfs() throws Exception {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    final TableName tableName = TableName.valueOf(name.getMethodName());<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    String peerId = "2";<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    if (admin2.isTableAvailable(TestReplicationBase.tableName)) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      admin2.disableTable(TestReplicationBase.tableName);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      admin2.deleteTable(TestReplicationBase.tableName);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    assertFalse("Table should not exists in the peer cluster",<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>    // update peer config<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    ReplicationPeerConfig rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    rpc.setReplicateAllUserTables(false);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    admin1.updateReplicationPeerConfig(peerId, rpc);<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>    Map&lt;TableName, ? extends Collection&lt;String&gt;&gt; tableCfs = new HashMap&lt;&gt;();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    tableCfs.put(tableName, null);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    try {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      adminExt.setPeerTableCFs(peerId, tableCfs);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      admin1.enableTableReplication(TestReplicationBase.tableName);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      assertFalse("Table should not be created if user has set table cfs explicitly for the "<a name="line.226"></a>
+<span class="sourceLineNo">227</span>          + "peer and this is not part of that collection",<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>      tableCfs.put(TestReplicationBase.tableName, null);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      adminExt.setPeerTableCFs(peerId, tableCfs);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      admin1.enableTableReplication(TestReplicationBase.tableName);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      assertTrue(<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        "Table should be created if user has explicitly added table into table cfs collection",<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        admin2.isTableAvailable(TestReplicationBase.tableName));<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    } finally {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      adminExt.removePeerTableCFs(peerId, adminExt.getPeerTableCFs(peerId));<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      admin1.disableTableReplication(TestReplicationBase.tableName);<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>      rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      rpc.setReplicateAllUserTables(true);<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      admin1.updateReplicationPeerConfig(peerId, rpc);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    }<a name="line.243"></a>
+<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
+<span class="sourceLineNo">245</span><a name="line.245"></a>
+<span class="sourceLineNo">246</span>  @Test<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  public void testReplicationPeerConfigUpdateCallback() throws Exception {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    String peerId = "1";<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    rpc.setClusterKey(utility2.getClusterKey());<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    rpc.setReplicationEndpointImpl(TestUpdatableReplicationEndpoint.class.getName());<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    rpc.getConfiguration().put("key1", "value1");<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>    admin1.addReplicationPeer(peerId, rpc);<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>    rpc.getConfiguration().put("key1", "value2");<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    admin.updatePeerConfig(peerId, rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    if (!TestUpdatableReplicationEndpoint.hasCalledBack()) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      synchronized (TestUpdatableReplicationEndpoint.class) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        TestUpdatableReplicationEndpoint.class.wait(2000L);<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      }<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>    assertEquals(true, TestUpdatableReplicationEndpoint.hasCalledBack());<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>    admin.removePeer(peerId);<a name="line.266"></a>
+<span class="sourceLineNo">267</span>  }<a name="line.267"></a>
+<span class="sourceLineNo">268</span><a name="line.268"></a>
+<span class="sourceLineNo">269</span>  public static class TestUpdatableReplicationEndpoint extends BaseReplicationEndpoint {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    private static boolean calledBack = false;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    public static boolean hasCalledBack(){<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      return calledBack;<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    }<a name="line.273"></a>
 <span class="sourceLineNo">274</span>    @Override<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    public void start() {<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      startAsync();<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span>    @Override<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    public void stop() {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      stopAsync();<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    }<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span>    @Override<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    protected void doStart() {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      notifyStarted();<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    }<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span>    @Override<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    protected void doStop() {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>      notifyStopped();<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    }<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">275</span>    public synchronized void peerConfigUpdated(ReplicationPeerConfig rpc){<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      calledBack = true;<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      notifyAll();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    }<a name="line.278"></a>
+<span class="sourceLineNo">279</span><a name="line.279"></a>
+<span class="sourceLineNo">280</span>    @Override<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    public void start() {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      startAsync();<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>    @Override<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    public void stop() {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      stopAsync();<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    }<a name="line.288"></a>
+<span class="sourceLineNo">289</span><a name="line.289"></a>
+<span class="sourceLineNo">290</span>    @Override<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    protected void doStart() {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>      notifyStarted();<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    }<a name="line.293"></a>
 <span class="sourceLineNo">294</span><a name="line.294"></a>
 <span class="sourceLineNo">295</span>    @Override<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    public UUID getPeerUUID() {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      return UUID.randomUUID();<a name="line.297"></a>
+<span class="sourceLineNo">296</span>    protected void doStop() {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>      notifyStopped();<a name="line.297"></a>
 <span class="sourceLineNo">298</span>    }<a name="line.298"></a>
 <span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>    @Override<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      return false;<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    }<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  }<a name="line.304"></a>
-<span class="sourceLineNo">305</span>}<a name="line.305"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>    @Override<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    public UUID getPeerUUID() {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      return UUID.randomUUID();<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    }<a name="line.304"></a>
+<span class="sourceLineNo">305</span><a name="line.305"></a>
+<span class="sourceLineNo">306</span>    @Override<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      return false;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    }<a name="line.309"></a>
+<span class="sourceLineNo">310</span>  }<a name="line.310"></a>
+<span class="sourceLineNo">311</span>}<a name="line.311"></a>
 
 
 


[08/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html
index bee8222..7a938de 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointForTest.html
@@ -72,7 +72,7 @@
 <span class="sourceLineNo">064</span>/**<a name="line.64"></a>
 <span class="sourceLineNo">065</span> * Tests ReplicationSource and ReplicationEndpoint interactions<a name="line.65"></a>
 <span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@Category({ReplicationTests.class, MediumTests.class})<a name="line.67"></a>
+<span class="sourceLineNo">067</span>@Category({ ReplicationTests.class, MediumTests.class })<a name="line.67"></a>
 <span class="sourceLineNo">068</span>public class TestReplicationEndpoint extends TestReplicationBase {<a name="line.68"></a>
 <span class="sourceLineNo">069</span><a name="line.69"></a>
 <span class="sourceLineNo">070</span>  @ClassRule<a name="line.70"></a>
@@ -86,317 +86,317 @@
 <span class="sourceLineNo">078</span>  @BeforeClass<a name="line.78"></a>
 <span class="sourceLineNo">079</span>  public static void setUpBeforeClass() throws Exception {<a name="line.79"></a>
 <span class="sourceLineNo">080</span>    TestReplicationBase.setUpBeforeClass();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    admin.removePeer("2");<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  @AfterClass<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  public static void tearDownAfterClass() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    TestReplicationBase.tearDownAfterClass();<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    // check stop is called<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() &gt; 0);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  }<a name="line.90"></a>
-<span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>  @Before<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  public void setup() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    ReplicationEndpointForTest.contructedCount.set(0);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    ReplicationEndpointForTest.startedCount.set(0);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    ReplicationEndpointForTest.replicateCount.set(0);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    ReplicationEndpointForTest.lastEntries = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    final List&lt;RegionServerThread&gt; rsThreads =<a name="line.99"></a>
-<span class="sourceLineNo">100</span>        utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    for (RegionServerThread rs : rsThreads) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    // Wait for  all log roll to finish<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    utility1.waitFor(3000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      @Override<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      public boolean evaluate() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>        for (RegionServerThread rs : rsThreads) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span>            return false;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>          }<a name="line.111"></a>
-<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>        return true;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>      @Override<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      public String explainFailure() throws Exception {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        List&lt;String&gt; logRollInProgressRsList = new ArrayList&lt;&gt;();<a name="line.118"></a>
-<span class="sourceLineNo">119</span>        for (RegionServerThread rs : rsThreads) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>            logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.121"></a>
-<span class="sourceLineNo">122</span>          }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>        }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>        return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      }<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    });<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>  @Test<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  public void testCustomReplicationEndpoint() throws Exception {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    // test installing a custom replication endpoint other than the default one.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    admin.addPeer("testCustomReplicationEndpoint",<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.133"></a>
-<span class="sourceLineNo">134</span>            .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    // check whether the class has been constructed and started<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      public boolean evaluate() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        return ReplicationEndpointForTest.contructedCount.get() &gt;= numRegionServers;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      }<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    });<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      @Override<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      public boolean evaluate() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>        return ReplicationEndpointForTest.startedCount.get() &gt;= numRegionServers;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      }<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    });<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>    // now replicate some data.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    doPut(Bytes.toBytes("row42"));<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      public boolean evaluate() throws Exception {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      }<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    });<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>    doAssert(Bytes.toBytes("row42"));<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>    admin.removePeer("testCustomReplicationEndpoint");<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>  @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    int peerCount = admin.getPeersCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    admin.addPeer(id,<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.175"></a>
-<span class="sourceLineNo">176</span>        .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    // debug.  Peer needs to be up for the edit to make it across. This wait on<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    // peer count seems to be a hack that has us not progress till peer is up.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    if (admin.getPeersCount() &lt;= peerCount) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      Threads.sleep(100);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    // now replicate some data<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    doPut(row);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      public boolean evaluate() throws Exception {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        // only send over one edit.<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        LOG.info("count=" + count);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>        return ReplicationEndpointReturningFalse.replicated.get();<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    });<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      throw ReplicationEndpointReturningFalse.ex.get();<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>    admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.201"></a>
-<span class="sourceLineNo">202</span>  }<a name="line.202"></a>
-<span class="sourceLineNo">203</span><a name="line.203"></a>
-<span class="sourceLineNo">204</span>  @Test<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  public void testInterClusterReplication() throws Exception {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    final String id = "testInterClusterReplication";<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>    List&lt;HRegion&gt; regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    int totEdits = 0;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>    // Make sure edits are spread across regions because we do region based batching<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    // before shipping edits.<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    for(HRegion region: regions) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      RegionInfo hri = region.getRegionInfo();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      byte[] row = hri.getStartKey();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      for (int i = 0; i &lt; 100; i++) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        if (row.length &gt; 0) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>          Put put = new Put(row);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          put.addColumn(famName, row, row);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          region.put(put);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>          totEdits++;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        }<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      }<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>    admin.addPeer(id,<a name="line.226"></a>
-<span class="sourceLineNo">227</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.227"></a>
-<span class="sourceLineNo">228</span>            .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        null);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>    final int numEdits = totEdits;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      public boolean evaluate() throws Exception {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>      @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      public String explainFailure() throws Exception {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.240"></a>
-<span class="sourceLineNo">241</span>            + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>        return failure;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      }<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    });<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>    admin.removePeer("testInterClusterReplication");<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    utility1.deleteTableData(tableName);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  @Test<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.252"></a>
-<span class="sourceLineNo">253</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    //test that we can create mutliple WALFilters reflectively<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        EverythingPassesWALEntryFilter.class.getName() +<a name="line.256"></a>
-<span class="sourceLineNo">257</span>            "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    // now replicate some data.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      doPut(connection, Bytes.toBytes("row1"));<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      doPut(connection, row);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      doPut(connection, Bytes.toBytes("row2"));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      public boolean evaluate() throws Exception {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    });<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>    Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    //make sure our reflectively created filter is in the filter chain<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span>  @Test (expected=IOException.class)<a name="line.279"></a>
-<span class="sourceLineNo">280</span>  public void testWALEntryFilterAddValidation() throws Exception {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    //test that we can create mutliple WALFilters reflectively<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        "IAmNotARealWalEntryFilter");<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  }<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span>  @Test (expected=IOException.class)<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.291"></a>
-<span class="sourceLineNo">292</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    //test that we can create mutliple WALFilters reflectively<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.294"></a>
-<span class="sourceLineNo">295</span>        "IAmNotARealWalEntryFilter");<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>  }<a name="line.297"></a>
+<span class="sourceLineNo">081</span>    numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  @AfterClass<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  public static void tearDownAfterClass() throws Exception {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    TestReplicationBase.tearDownAfterClass();<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    // check stop is called<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() &gt; 0);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>  @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  public void setup() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    ReplicationEndpointForTest.contructedCount.set(0);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    ReplicationEndpointForTest.startedCount.set(0);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    ReplicationEndpointForTest.replicateCount.set(0);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    ReplicationEndpointForTest.lastEntries = null;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    final List&lt;RegionServerThread&gt; rsThreads =<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    for (RegionServerThread rs : rsThreads) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    // Wait for  all log roll to finish<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    utility1.waitFor(3000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      public boolean evaluate() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        for (RegionServerThread rs : rsThreads) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>            return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>          }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        return true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>      @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      public String explainFailure() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        List&lt;String&gt; logRollInProgressRsList = new ArrayList&lt;&gt;();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        for (RegionServerThread rs : rsThreads) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>            logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.120"></a>
+<span class="sourceLineNo">121</span>          }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    });<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>  @Test<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  public void testCustomReplicationEndpoint() throws Exception {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // test installing a custom replication endpoint other than the default one.<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    admin.addPeer("testCustomReplicationEndpoint",<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.132"></a>
+<span class="sourceLineNo">133</span>            .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>    // check whether the class has been constructed and started<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      public boolean evaluate() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        return ReplicationEndpointForTest.contructedCount.get() &gt;= numRegionServers;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    });<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      public boolean evaluate() throws Exception {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        return ReplicationEndpointForTest.startedCount.get() &gt;= numRegionServers;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    });<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    // now replicate some data.<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    doPut(Bytes.toBytes("row42"));<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      public boolean evaluate() throws Exception {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    });<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>    doAssert(Bytes.toBytes("row42"));<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>    admin.removePeer("testCustomReplicationEndpoint");<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>  @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    int peerCount = admin.getPeersCount();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    admin.addPeer(id,<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    // debug.  Peer needs to be up for the edit to make it across. This wait on<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    // peer count seems to be a hack that has us not progress till peer is up.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    if (admin.getPeersCount() &lt;= peerCount) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      Threads.sleep(100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    // now replicate some data<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    doPut(row);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      public boolean evaluate() throws Exception {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        // only send over one edit.<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        LOG.info("count=" + count);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        return ReplicationEndpointReturningFalse.replicated.get();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    });<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      throw ReplicationEndpointReturningFalse.ex.get();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    }<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>    admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  public void testInterClusterReplication() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    final String id = "testInterClusterReplication";<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>    List&lt;HRegion&gt; regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    int totEdits = 0;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>    // Make sure edits are spread across regions because we do region based batching<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    // before shipping edits.<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    for(HRegion region: regions) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      RegionInfo hri = region.getRegionInfo();<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      byte[] row = hri.getStartKey();<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      for (int i = 0; i &lt; 100; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        if (row.length &gt; 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          Put put = new Put(row);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>          put.addColumn(famName, row, row);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          region.put(put);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>          totEdits++;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>    admin.addPeer(id,<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.226"></a>
+<span class="sourceLineNo">227</span>            .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        null);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>    final int numEdits = totEdits;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      public boolean evaluate() throws Exception {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>      @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      public String explainFailure() throws Exception {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.239"></a>
+<span class="sourceLineNo">240</span>            + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        return failure;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    });<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>    admin.removePeer("testInterClusterReplication");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    utility1.deleteTableData(tableName);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>  @Test<a name="line.249"></a>
+<span class="sourceLineNo">250</span>  public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    //test that we can create mutliple WALFilters reflectively<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        EverythingPassesWALEntryFilter.class.getName() +<a name="line.255"></a>
+<span class="sourceLineNo">256</span>            "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    // now replicate some data.<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      doPut(connection, Bytes.toBytes("row1"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      doPut(connection, row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      doPut(connection, Bytes.toBytes("row2"));<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      public boolean evaluate() throws Exception {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      }<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    });<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span>    Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    //make sure our reflectively created filter is in the filter chain<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>  @Test (expected=IOException.class)<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  public void testWALEntryFilterAddValidation() throws Exception {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    //test that we can create mutliple WALFilters reflectively<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        "IAmNotARealWalEntryFilter");<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>  @Test (expected=IOException.class)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>  public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    //test that we can create mutliple WALFilters reflectively<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        "IAmNotARealWalEntryFilter");<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>  }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
 <span class="sourceLineNo">298</span><a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>  @Test<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  public void testMetricsSourceBaseSourcePassthrough(){<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    /*<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    allows for custom JMX metrics.<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    the two layers of wrapping to the actual BaseSource.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    */<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    String id = "id";<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>    MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    String gaugeName = "gauge";<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    String singleGaugeName = "source.id." + gaugeName;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    String globalGaugeName = "source." + gaugeName;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    long delta = 1;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    String counterName = "counter";<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    String singleCounterName = "source.id." + counterName;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    String globalCounterName = "source." + counterName;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    long count = 2;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    source.decGauge(gaugeName, delta);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    source.getMetricsContext();<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    source.getMetricsDescription();<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    source.getMetricsJmxContext();<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    source.getMetricsName();<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    source.incCounters(counterName, count);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    source.incGauge(gaugeName, delta);<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    source.init();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    source.removeMetric(gaugeName);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    source.setGauge(gaugeName, delta);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    source.updateHistogram(counterName, count);<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    verify(globalRms).getMetricsContext();<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    verify(globalRms).getMetricsJmxContext();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    verify(globalRms).getMetricsName();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    verify(singleRms).incCounters(singleCounterName, count);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    verify(globalRms).incCounters(globalCounterName, count);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    verify(globalRms).init();<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    verify(singleRms).removeMetric(singleGaugeName);<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    verify(globalRms).removeMetric(globalGaugeName);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    verify(globalRms).updateHistogram(globalCounterName, count);<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>  private void doPut(byte[] row) throws IOException {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      doPut(connection, row);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>  private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    try (Table t = connection.getTable(tableName)) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      Put put = new Put(row);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      put.addColumn(famName, row, row);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      t.put(put);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>  private static void doAssert(byte[] row) throws Exception {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      return; // first call<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    List&lt;Cell&gt; cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    Assert.assertEquals(1, cells.size());<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      cells.get(0).getRowLength(), row, 0, row.length));<a name="line.380"></a>
-<span class="sourceLineNo">381</span>  }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span>  public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    static UUID uuid = UUID.randomUUID();<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    static AtomicInteger contructedCount = new AtomicInteger();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    static AtomicInteger startedCount = new AtomicInteger();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    static volatile List&lt;Entry&gt; lastEntries = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>    public ReplicationEndpointForTest() {<a name="line.391"></a>
+<span class="sourceLineNo">299</span>  @Test<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  public void testMetricsSourceBaseSourcePassthrough(){<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    /*<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    allows for custom JMX metrics.<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    the two layers of wrapping to the actual BaseSource.<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    String id = "id";<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>    MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    String gaugeName = "gauge";<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    String singleGaugeName = "source.id." + gaugeName;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    String globalGaugeName = "source." + gaugeName;<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    long delta = 1;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    String counterName = "counter";<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    String singleCounterName = "source.id." + counterName;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    String globalCounterName = "source." + counterName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    long count = 2;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    source.decGauge(gaugeName, delta);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    source.getMetricsContext();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    source.getMetricsDescription();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    source.getMetricsJmxContext();<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    source.getMetricsName();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    source.incCounters(counterName, count);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    source.incGauge(gaugeName, delta);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    source.init();<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    source.removeMetric(gaugeName);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    source.setGauge(gaugeName, delta);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    source.updateHistogram(counterName, count);<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>    verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    verify(globalRms).getMetricsContext();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    verify(globalRms).getMetricsJmxContext();<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    verify(globalRms).getMetricsName();<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    verify(singleRms).incCounters(singleCounterName, count);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    verify(globalRms).incCounters(globalCounterName, count);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    verify(globalRms).init();<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    verify(singleRms).removeMetric(singleGaugeName);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    verify(globalRms).removeMetric(globalGaugeName);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    verify(globalRms).updateHistogram(globalCounterName, count);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>  private void doPut(byte[] row) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      doPut(connection, row);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>  private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    try (Table t = connection.getTable(tableName)) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      Put put = new Put(row);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      put.addColumn(famName, row, row);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      t.put(put);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>  private static void doAssert(byte[] row) throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      return; // first call<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    List&lt;Cell&gt; cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    Assert.assertEquals(1, cells.size());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      cells.get(0).getRowLength(), row, 0, row.length));<a name="line.379"></a>
+<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>  public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    static UUID uuid = UUID.randomUUID();<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    static AtomicInteger contructedCount = new AtomicInteger();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    static AtomicInteger startedCount = new AtomicInteger();<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    static volatile List&lt;Entry&gt; lastEntries = null;<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>    public ReplicationEndpointForTest() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      replicateCount.set(0);<a name="line.391"></a>
 <span class="sourceLineNo">392</span>      contructedCount.incrementAndGet();<a name="line.392"></a>
 <span class="sourceLineNo">393</span>    }<a name="line.393"></a>
 <span class="sourceLineNo">394</span><a name="line.394"></a>
@@ -441,127 +441,131 @@
 <span class="sourceLineNo">433</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.433"></a>
 <span class="sourceLineNo">434</span>    static boolean failedOnce;<a name="line.434"></a>
 <span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      boolean success = super.replicate(replicateContext);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      if (success) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        replicateCount.addAndGet(replicateContext.entries.size());<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      }<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      return success;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>    @Override<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    protected Replicator createReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      // Fail only once, we don't want to slow down the test.<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      if (failedOnce) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>        return new DummyReplicator(entries, ordinal);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      } else {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>        failedOnce = true;<a name="line.451"></a>
-<span class="sourceLineNo">452</span>        return new FailingDummyReplicator(entries, ordinal);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
-<span class="sourceLineNo">455</span><a name="line.455"></a>
-<span class="sourceLineNo">456</span>    protected class DummyReplicator extends Replicator {<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>      private int ordinal;<a name="line.458"></a>
+<span class="sourceLineNo">436</span>    public InterClusterReplicationEndpointForTest() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>      replicateCount.set(0);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>    @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      boolean success = super.replicate(replicateContext);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      if (success) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        replicateCount.addAndGet(replicateContext.entries.size());<a name="line.444"></a>
+<span class="sourceLineNo">445</span>      }<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      return success;<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span>    @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    protected Replicator createReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      // Fail only once, we don't want to slow down the test.<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      if (failedOnce) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        return new DummyReplicator(entries, ordinal);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        failedOnce = true;<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        return new FailingDummyReplicator(entries, ordinal);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      }<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    }<a name="line.458"></a>
 <span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>      public DummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        super(entries, ordinal);<a name="line.461"></a>
-<span class="sourceLineNo">462</span>        this.ordinal = ordinal;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>      @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      public Integer call() throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        return ordinal;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      }<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    }<a name="line.469"></a>
-<span class="sourceLineNo">470</span><a name="line.470"></a>
-<span class="sourceLineNo">471</span>    protected class FailingDummyReplicator extends DummyReplicator {<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span>      public FailingDummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        super(entries, ordinal);<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
+<span class="sourceLineNo">460</span>    protected class DummyReplicator extends Replicator {<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>      private int ordinal;<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>      public DummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        super(entries, ordinal);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        this.ordinal = ordinal;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>      }<a name="line.467"></a>
+<span class="sourceLineNo">468</span><a name="line.468"></a>
+<span class="sourceLineNo">469</span>      @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      public Integer call() throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        return ordinal;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      }<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>    protected class FailingDummyReplicator extends DummyReplicator {<a name="line.475"></a>
 <span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>      @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      public Integer call() throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>        throw new IOException("Sample Exception: Failed to replicate.");<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      }<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>  public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    static int COUNT = 10;<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    @Override<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      try {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        // check row<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        doAssert(row);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      } catch (Exception e) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>        ex.set(e);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>      super.replicate(replicateContext);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>      replicated.set(replicateCount.get() &gt; COUNT); // first 10 times, we return false<a name="line.500"></a>
-<span class="sourceLineNo">501</span>      return replicated.get();<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    }<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span>  // return a WALEntry filter which only accepts "row", but not other rows<a name="line.505"></a>
-<span class="sourceLineNo">506</span>  public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.507"></a>
+<span class="sourceLineNo">477</span>      public FailingDummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        super(entries, ordinal);<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>      @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      public Integer call() throws IOException {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        throw new IOException("Sample Exception: Failed to replicate.");<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      }<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span>  public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    static int COUNT = 10;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>      try {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        // check row<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        doAssert(row);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>      } catch (Exception e) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        ex.set(e);<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      }<a name="line.499"></a>
+<span class="sourceLineNo">500</span><a name="line.500"></a>
+<span class="sourceLineNo">501</span>      super.replicate(replicateContext);<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>      replicated.set(replicateCount.get() &gt; COUNT); // first 10 times, we return false<a name="line.504"></a>
+<span class="sourceLineNo">505</span>      return replicated.get();<a name="line.505"></a>
+<span class="sourceLineNo">506</span>    }<a name="line.506"></a>
+<span class="sourceLineNo">507</span>  }<a name="line.507"></a>
 <span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span>    @Override<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      try {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        super.replicate(replicateContext);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>        doAssert(row);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      } catch (Exception e) {<a name="line.514"></a>
-<span class="sourceLineNo">515</span>        ex.set(e);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      }<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      return true;<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>    @Override<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    public WALEntryFilter getWALEntryfilter() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span>        public Entry filter(Entry entry) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>          ArrayList&lt;Cell&gt; cells = entry.getEdit().getCells();<a name="line.525"></a>
-<span class="sourceLineNo">526</span>          int size = cells.size();<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          for (int i = size-1; i &gt;= 0; i--) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>            Cell cell = cells.get(i);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>            if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.529"></a>
-<span class="sourceLineNo">530</span>              row, 0, row.length)) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span>              cells.remove(i);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>            }<a name="line.532"></a>
-<span class="sourceLineNo">533</span>          }<a name="line.533"></a>
-<span class="sourceLineNo">534</span>          return entry;<a name="line.534"></a>
-<span class="sourceLineNo">535</span>        }<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      });<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    }<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span>  public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    private static boolean passedEntry = false;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    public Entry filter(Entry entry) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>      passedEntry = true;<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      return entry;<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>    public static boolean hasPassedAnEntry(){<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      return passedEntry;<a name="line.549"></a>
+<span class="sourceLineNo">509</span>  // return a WALEntry filter which only accepts "row", but not other rows<a name="line.509"></a>
+<span class="sourceLineNo">510</span>  public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span>    @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      try {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        super.replicate(replicateContext);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        doAssert(row);<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      } catch (Exception e) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        ex.set(e);<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      }<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      return true;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>    }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span>    @Override<a name="line.524"></a>
+<span class="sourceLineNo">525</span>    public WALEntryFilter getWALEntryfilter() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public Entry filter(Entry entry) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>          ArrayList&lt;Cell&gt; cells = entry.getEdit().getCells();<a name="line.529"></a>
+<span class="sourceLineNo">530</span>          int size = cells.size();<a name="line.530"></a>
+<span class="sourceLineNo">531</span>          for (int i = size-1; i &gt;= 0; i--) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>            Cell cell = cells.get(i);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>            if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.533"></a>
+<span class="sourceLineNo">534</span>              row, 0, row.length)) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>              cells.remove(i);<a name="line.535"></a>
+<span class="sourceLineNo">536</span>            }<a name="line.536"></a>
+<span class="sourceLineNo">537</span>          }<a name="line.537"></a>
+<span class="sourceLineNo">538</span>          return entry;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        }<a name="line.539"></a>
+<span class="sourceLineNo">540</span>      });<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>  }<a name="line.542"></a>
+<span class="sourceLineNo">543</span><a name="line.543"></a>
+<span class="sourceLineNo">544</span>  public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.544"></a>
+<span class="sourceLineNo">545</span>    private static boolean passedEntry = false;<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    public Entry filter(Entry entry) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>      passedEntry = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      return entry;<a name="line.549"></a>
 <span class="sourceLineNo">550</span>    }<a name="line.550"></a>
-<span class="sourceLineNo">551</span>  }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span>  public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>    public static boolean hasPassedAnEntry(){<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      return passedEntry;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    }<a name="line.554"></a>
 <span class="sourceLineNo">555</span>  }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>}<a name="line.556"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span>  public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span>  }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>}<a name="line.560"></a>
 
 
 


[11/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html
index bee8222..7a938de 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.DummyReplicator.html
@@ -72,7 +72,7 @@
 <span class="sourceLineNo">064</span>/**<a name="line.64"></a>
 <span class="sourceLineNo">065</span> * Tests ReplicationSource and ReplicationEndpoint interactions<a name="line.65"></a>
 <span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@Category({ReplicationTests.class, MediumTests.class})<a name="line.67"></a>
+<span class="sourceLineNo">067</span>@Category({ ReplicationTests.class, MediumTests.class })<a name="line.67"></a>
 <span class="sourceLineNo">068</span>public class TestReplicationEndpoint extends TestReplicationBase {<a name="line.68"></a>
 <span class="sourceLineNo">069</span><a name="line.69"></a>
 <span class="sourceLineNo">070</span>  @ClassRule<a name="line.70"></a>
@@ -86,317 +86,317 @@
 <span class="sourceLineNo">078</span>  @BeforeClass<a name="line.78"></a>
 <span class="sourceLineNo">079</span>  public static void setUpBeforeClass() throws Exception {<a name="line.79"></a>
 <span class="sourceLineNo">080</span>    TestReplicationBase.setUpBeforeClass();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    admin.removePeer("2");<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  @AfterClass<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  public static void tearDownAfterClass() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    TestReplicationBase.tearDownAfterClass();<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    // check stop is called<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() &gt; 0);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  }<a name="line.90"></a>
-<span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>  @Before<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  public void setup() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    ReplicationEndpointForTest.contructedCount.set(0);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    ReplicationEndpointForTest.startedCount.set(0);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    ReplicationEndpointForTest.replicateCount.set(0);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    ReplicationEndpointForTest.lastEntries = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    final List&lt;RegionServerThread&gt; rsThreads =<a name="line.99"></a>
-<span class="sourceLineNo">100</span>        utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    for (RegionServerThread rs : rsThreads) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    // Wait for  all log roll to finish<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    utility1.waitFor(3000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      @Override<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      public boolean evaluate() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>        for (RegionServerThread rs : rsThreads) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span>            return false;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>          }<a name="line.111"></a>
-<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>        return true;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>      @Override<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      public String explainFailure() throws Exception {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        List&lt;String&gt; logRollInProgressRsList = new ArrayList&lt;&gt;();<a name="line.118"></a>
-<span class="sourceLineNo">119</span>        for (RegionServerThread rs : rsThreads) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>            logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.121"></a>
-<span class="sourceLineNo">122</span>          }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>        }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>        return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      }<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    });<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>  @Test<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  public void testCustomReplicationEndpoint() throws Exception {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    // test installing a custom replication endpoint other than the default one.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    admin.addPeer("testCustomReplicationEndpoint",<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.133"></a>
-<span class="sourceLineNo">134</span>            .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    // check whether the class has been constructed and started<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      public boolean evaluate() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        return ReplicationEndpointForTest.contructedCount.get() &gt;= numRegionServers;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      }<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    });<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      @Override<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      public boolean evaluate() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>        return ReplicationEndpointForTest.startedCount.get() &gt;= numRegionServers;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      }<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    });<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>    // now replicate some data.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    doPut(Bytes.toBytes("row42"));<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      public boolean evaluate() throws Exception {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      }<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    });<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>    doAssert(Bytes.toBytes("row42"));<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>    admin.removePeer("testCustomReplicationEndpoint");<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>  @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    int peerCount = admin.getPeersCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    admin.addPeer(id,<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.175"></a>
-<span class="sourceLineNo">176</span>        .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    // debug.  Peer needs to be up for the edit to make it across. This wait on<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    // peer count seems to be a hack that has us not progress till peer is up.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    if (admin.getPeersCount() &lt;= peerCount) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      Threads.sleep(100);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    // now replicate some data<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    doPut(row);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      public boolean evaluate() throws Exception {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        // only send over one edit.<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        LOG.info("count=" + count);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>        return ReplicationEndpointReturningFalse.replicated.get();<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    });<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      throw ReplicationEndpointReturningFalse.ex.get();<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>    admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.201"></a>
-<span class="sourceLineNo">202</span>  }<a name="line.202"></a>
-<span class="sourceLineNo">203</span><a name="line.203"></a>
-<span class="sourceLineNo">204</span>  @Test<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  public void testInterClusterReplication() throws Exception {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    final String id = "testInterClusterReplication";<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>    List&lt;HRegion&gt; regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    int totEdits = 0;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>    // Make sure edits are spread across regions because we do region based batching<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    // before shipping edits.<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    for(HRegion region: regions) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      RegionInfo hri = region.getRegionInfo();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      byte[] row = hri.getStartKey();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      for (int i = 0; i &lt; 100; i++) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        if (row.length &gt; 0) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>          Put put = new Put(row);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          put.addColumn(famName, row, row);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          region.put(put);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>          totEdits++;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        }<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      }<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>    admin.addPeer(id,<a name="line.226"></a>
-<span class="sourceLineNo">227</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.227"></a>
-<span class="sourceLineNo">228</span>            .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        null);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>    final int numEdits = totEdits;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      public boolean evaluate() throws Exception {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>      @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      public String explainFailure() throws Exception {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.240"></a>
-<span class="sourceLineNo">241</span>            + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>        return failure;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      }<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    });<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>    admin.removePeer("testInterClusterReplication");<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    utility1.deleteTableData(tableName);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  @Test<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.252"></a>
-<span class="sourceLineNo">253</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    //test that we can create mutliple WALFilters reflectively<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        EverythingPassesWALEntryFilter.class.getName() +<a name="line.256"></a>
-<span class="sourceLineNo">257</span>            "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    // now replicate some data.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      doPut(connection, Bytes.toBytes("row1"));<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      doPut(connection, row);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      doPut(connection, Bytes.toBytes("row2"));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      public boolean evaluate() throws Exception {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    });<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>    Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    //make sure our reflectively created filter is in the filter chain<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span>  @Test (expected=IOException.class)<a name="line.279"></a>
-<span class="sourceLineNo">280</span>  public void testWALEntryFilterAddValidation() throws Exception {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    //test that we can create mutliple WALFilters reflectively<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        "IAmNotARealWalEntryFilter");<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  }<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span>  @Test (expected=IOException.class)<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.291"></a>
-<span class="sourceLineNo">292</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    //test that we can create mutliple WALFilters reflectively<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.294"></a>
-<span class="sourceLineNo">295</span>        "IAmNotARealWalEntryFilter");<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>  }<a name="line.297"></a>
+<span class="sourceLineNo">081</span>    numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  @AfterClass<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  public static void tearDownAfterClass() throws Exception {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    TestReplicationBase.tearDownAfterClass();<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    // check stop is called<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() &gt; 0);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>  @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  public void setup() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    ReplicationEndpointForTest.contructedCount.set(0);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    ReplicationEndpointForTest.startedCount.set(0);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    ReplicationEndpointForTest.replicateCount.set(0);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    ReplicationEndpointForTest.lastEntries = null;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    final List&lt;RegionServerThread&gt; rsThreads =<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    for (RegionServerThread rs : rsThreads) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    // Wait for  all log roll to finish<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    utility1.waitFor(3000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      public boolean evaluate() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        for (RegionServerThread rs : rsThreads) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>            return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>          }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        return true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>      @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      public String explainFailure() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        List&lt;String&gt; logRollInProgressRsList = new ArrayList&lt;&gt;();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        for (RegionServerThread rs : rsThreads) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>            logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.120"></a>
+<span class="sourceLineNo">121</span>          }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    });<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>  @Test<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  public void testCustomReplicationEndpoint() throws Exception {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // test installing a custom replication endpoint other than the default one.<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    admin.addPeer("testCustomReplicationEndpoint",<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.132"></a>
+<span class="sourceLineNo">133</span>            .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>    // check whether the class has been constructed and started<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      public boolean evaluate() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        return ReplicationEndpointForTest.contructedCount.get() &gt;= numRegionServers;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    });<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      public boolean evaluate() throws Exception {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        return ReplicationEndpointForTest.startedCount.get() &gt;= numRegionServers;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    });<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    // now replicate some data.<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    doPut(Bytes.toBytes("row42"));<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      public boolean evaluate() throws Exception {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    });<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>    doAssert(Bytes.toBytes("row42"));<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>    admin.removePeer("testCustomReplicationEndpoint");<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>  @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    int peerCount = admin.getPeersCount();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    admin.addPeer(id,<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    // debug.  Peer needs to be up for the edit to make it across. This wait on<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    // peer count seems to be a hack that has us not progress till peer is up.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    if (admin.getPeersCount() &lt;= peerCount) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      Threads.sleep(100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    // now replicate some data<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    doPut(row);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      public boolean evaluate() throws Exception {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        // only send over one edit.<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        LOG.info("count=" + count);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        return ReplicationEndpointReturningFalse.replicated.get();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    });<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      throw ReplicationEndpointReturningFalse.ex.get();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    }<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>    admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  public void testInterClusterReplication() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    final String id = "testInterClusterReplication";<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>    List&lt;HRegion&gt; regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    int totEdits = 0;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>    // Make sure edits are spread across regions because we do region based batching<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    // before shipping edits.<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    for(HRegion region: regions) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      RegionInfo hri = region.getRegionInfo();<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      byte[] row = hri.getStartKey();<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      for (int i = 0; i &lt; 100; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        if (row.length &gt; 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          Put put = new Put(row);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>          put.addColumn(famName, row, row);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          region.put(put);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>          totEdits++;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>    admin.addPeer(id,<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.226"></a>
+<span class="sourceLineNo">227</span>            .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        null);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>    final int numEdits = totEdits;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      public boolean evaluate() throws Exception {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>      @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      public String explainFailure() throws Exception {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.239"></a>
+<span class="sourceLineNo">240</span>            + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        return failure;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    });<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>    admin.removePeer("testInterClusterReplication");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    utility1.deleteTableData(tableName);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>  @Test<a name="line.249"></a>
+<span class="sourceLineNo">250</span>  public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    //test that we can create mutliple WALFilters reflectively<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        EverythingPassesWALEntryFilter.class.getName() +<a name="line.255"></a>
+<span class="sourceLineNo">256</span>            "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    // now replicate some data.<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      doPut(connection, Bytes.toBytes("row1"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      doPut(connection, row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      doPut(connection, Bytes.toBytes("row2"));<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      public boolean evaluate() throws Exception {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      }<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    });<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span>    Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    //make sure our reflectively created filter is in the filter chain<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>  @Test (expected=IOException.class)<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  public void testWALEntryFilterAddValidation() throws Exception {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    //test that we can create mutliple WALFilters reflectively<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        "IAmNotARealWalEntryFilter");<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>  @Test (expected=IOException.class)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>  public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    //test that we can create mutliple WALFilters reflectively<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        "IAmNotARealWalEntryFilter");<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>  }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
 <span class="sourceLineNo">298</span><a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>  @Test<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  public void testMetricsSourceBaseSourcePassthrough(){<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    /*<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    allows for custom JMX metrics.<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    the two layers of wrapping to the actual BaseSource.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    */<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    String id = "id";<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>    MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    String gaugeName = "gauge";<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    String singleGaugeName = "source.id." + gaugeName;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    String globalGaugeName = "source." + gaugeName;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    long delta = 1;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    String counterName = "counter";<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    String singleCounterName = "source.id." + counterName;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    String globalCounterName = "source." + counterName;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    long count = 2;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    source.decGauge(gaugeName, delta);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    source.getMetricsContext();<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    source.getMetricsDescription();<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    source.getMetricsJmxContext();<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    source.getMetricsName();<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    source.incCounters(counterName, count);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    source.incGauge(gaugeName, delta);<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    source.init();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    source.removeMetric(gaugeName);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    source.setGauge(gaugeName, delta);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    source.updateHistogram(counterName, count);<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    verify(globalRms).getMetricsContext();<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    verify(globalRms).getMetricsJmxContext();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    verify(globalRms).getMetricsName();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    verify(singleRms).incCounters(singleCounterName, count);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    verify(globalRms).incCounters(globalCounterName, count);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    verify(globalRms).init();<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    verify(singleRms).removeMetric(singleGaugeName);<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    verify(globalRms).removeMetric(globalGaugeName);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    verify(globalRms).updateHistogram(globalCounterName, count);<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>  private void doPut(byte[] row) throws IOException {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      doPut(connection, row);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>  private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    try (Table t = connection.getTable(tableName)) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      Put put = new Put(row);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      put.addColumn(famName, row, row);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      t.put(put);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>  private static void doAssert(byte[] row) throws Exception {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      return; // first call<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    List&lt;Cell&gt; cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    Assert.assertEquals(1, cells.size());<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      cells.get(0).getRowLength(), row, 0, row.length));<a name="line.380"></a>
-<span class="sourceLineNo">381</span>  }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span>  public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    static UUID uuid = UUID.randomUUID();<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    static AtomicInteger contructedCount = new AtomicInteger();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    static AtomicInteger startedCount = new AtomicInteger();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    static volatile List&lt;Entry&gt; lastEntries = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>    public ReplicationEndpointForTest() {<a name="line.391"></a>
+<span class="sourceLineNo">299</span>  @Test<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  public void testMetricsSourceBaseSourcePassthrough(){<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    /*<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    allows for custom JMX metrics.<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    the two layers of wrapping to the actual BaseSource.<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    String id = "id";<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>    MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    String gaugeName = "gauge";<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    String singleGaugeName = "source.id." + gaugeName;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    String globalGaugeName = "source." + gaugeName;<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    long delta = 1;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    String counterName = "counter";<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    String singleCounterName = "source.id." + counterName;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    String globalCounterName = "source." + counterName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    long count = 2;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    source.decGauge(gaugeName, delta);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    source.getMetricsContext();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    source.getMetricsDescription();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    source.getMetricsJmxContext();<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    source.getMetricsName();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    source.incCounters(counterName, count);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    source.incGauge(gaugeName, delta);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    source.init();<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    source.removeMetric(gaugeName);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    source.setGauge(gaugeName, delta);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    source.updateHistogram(counterName, count);<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>    verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    verify(globalRms).getMetricsContext();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    verify(globalRms).getMetricsJmxContext();<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    verify(globalRms).getMetricsName();<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    verify(singleRms).incCounters(singleCounterName, count);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    verify(globalRms).incCounters(globalCounterName, count);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    verify(globalRms).init();<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    verify(singleRms).removeMetric(singleGaugeName);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    verify(globalRms).removeMetric(globalGaugeName);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    verify(globalRms).updateHistogram(globalCounterName, count);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>  private void doPut(byte[] row) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      doPut(connection, row);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>  private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    try (Table t = connection.getTable(tableName)) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      Put put = new Put(row);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      put.addColumn(famName, row, row);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      t.put(put);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>  private static void doAssert(byte[] row) throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      return; // first call<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    List&lt;Cell&gt; cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    Assert.assertEquals(1, cells.size());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      cells.get(0).getRowLength(), row, 0, row.length));<a name="line.379"></a>
+<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>  public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    static UUID uuid = UUID.randomUUID();<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    static AtomicInteger contructedCount = new AtomicInteger();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    static AtomicInteger startedCount = new AtomicInteger();<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    static volatile List&lt;Entry&gt; lastEntries = null;<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>    public ReplicationEndpointForTest() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      replicateCount.set(0);<a name="line.391"></a>
 <span class="sourceLineNo">392</span>      contructedCount.incrementAndGet();<a name="line.392"></a>
 <span class="sourceLineNo">393</span>    }<a name="line.393"></a>
 <span class="sourceLineNo">394</span><a name="line.394"></a>
@@ -441,127 +441,131 @@
 <span class="sourceLineNo">433</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.433"></a>
 <span class="sourceLineNo">434</span>    static boolean failedOnce;<a name="line.434"></a>
 <span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      boolean success = super.replicate(replicateContext);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      if (success) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        replicateCount.addAndGet(replicateContext.entries.size());<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      }<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      return success;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>    @Override<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    protected Replicator createReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      // Fail only once, we don't want to slow down the test.<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      if (failedOnce) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>        return new DummyReplicator(entries, ordinal);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      } else {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>        failedOnce = true;<a name="line.451"></a>
-<span class="sourceLineNo">452</span>        return new FailingDummyReplicator(entries, ordinal);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
-<span class="sourceLineNo">455</span><a name="line.455"></a>
-<span class="sourceLineNo">456</span>    protected class DummyReplicator extends Replicator {<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>      private int ordinal;<a name="line.458"></a>
+<span class="sourceLineNo">436</span>    public InterClusterReplicationEndpointForTest() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>      replicateCount.set(0);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>    @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      boolean success = super.replicate(replicateContext);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      if (success) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        replicateCount.addAndGet(replicateContext.entries.size());<a name="line.444"></a>
+<span class="sourceLineNo">445</span>      }<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      return success;<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span>    @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    protected Replicator createReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      // Fail only once, we don't want to slow down the test.<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      if (failedOnce) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        return new DummyReplicator(entries, ordinal);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        failedOnce = true;<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        return new FailingDummyReplicator(entries, ordinal);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      }<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    }<a name="line.458"></a>
 <span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>      public DummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        super(entries, ordinal);<a name="line.461"></a>
-<span class="sourceLineNo">462</span>        this.ordinal = ordinal;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>      @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      public Integer call() throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        return ordinal;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      }<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    }<a name="line.469"></a>
-<span class="sourceLineNo">470</span><a name="line.470"></a>
-<span class="sourceLineNo">471</span>    protected class FailingDummyReplicator extends DummyReplicator {<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span>      public FailingDummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        super(entries, ordinal);<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
+<span class="sourceLineNo">460</span>    protected class DummyReplicator extends Replicator {<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>      private int ordinal;<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>      public DummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        super(entries, ordinal);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        this.ordinal = ordinal;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>      }<a name="line.467"></a>
+<span class="sourceLineNo">468</span><a name="line.468"></a>
+<span class="sourceLineNo">469</span>      @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      public Integer call() throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        return ordinal;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      }<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>    protected class FailingDummyReplicator extends DummyReplicator {<a name="line.475"></a>
 <span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>      @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      public Integer call() throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>        throw new IOException("Sample Exception: Failed to replicate.");<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      }<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>  public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    static int COUNT = 10;<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    @Override<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      try {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        // check row<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        doAssert(row);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      } catch (Exception e) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>        ex.set(e);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>      super.replicate(replicateContext);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>      replicated.set(replicateCount.get() &gt; COUNT); // first 10 times, we return false<a name="line.500"></a>
-<span class="sourceLineNo">501</span>      return replicated.get();<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    }<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span>  // return a WALEntry filter which only accepts "row", but not other rows<a name="line.505"></a>
-<span class="sourceLineNo">506</span>  public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.507"></a>
+<span class="sourceLineNo">477</span>      public FailingDummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        super(entries, ordinal);<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>      @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      public Integer call() throws IOException {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        throw new IOException("Sample Exception: Failed to replicate.");<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      }<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span>  public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    static int COUNT = 10;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>      try {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        // check row<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        doAssert(row);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>      } catch (Exception e) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        ex.set(e);<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      }<a name="line.499"></a>
+<span class="sourceLineNo">500</span><a name="line.500"></a>
+<span class="sourceLineNo">501</span>      super.replicate(replicateContext);<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>      replicated.set(replicateCount.get() &gt; COUNT); // first 10 times, we return false<a name="line.504"></a>
+<span class="sourceLineNo">505</span>      return replicated.get();<a name="line.505"></a>
+<span class="sourceLineNo">506</span>    }<a name="line.506"></a>
+<span class="sourceLineNo">507</span>  }<a name="line.507"></a>
 <span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span>    @Override<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      try {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        super.replicate(replicateContext);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>        doAssert(row);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      } catch (Exception e) {<a name="line.514"></a>
-<span class="sourceLineNo">515</span>        ex.set(e);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      }<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      return true;<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>    @Override<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    public WALEntryFilter getWALEntryfilter() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span>        public Entry filter(Entry entry) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>          ArrayList&lt;Cell&gt; cells = entry.getEdit().getCells();<a name="line.525"></a>
-<span class="sourceLineNo">526</span>          int size = cells.size();<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          for (int i = size-1; i &gt;= 0; i--) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>            Cell cell = cells.get(i);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>            if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.529"></a>
-<span class="sourceLineNo">530</span>              row, 0, row.length)) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span>              cells.remove(i);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>            }<a name="line.532"></a>
-<span class="sourceLineNo">533</span>          }<a name="line.533"></a>
-<span class="sourceLineNo">534</span>          return entry;<a name="line.534"></a>
-<span class="sourceLineNo">535</span>        }<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      });<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    }<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span>  public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    private static boolean passedEntry = false;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    public Entry filter(Entry entry) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>      passedEntry = true;<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      return entry;<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>    public static boolean hasPassedAnEntry(){<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      return passedEntry;<a name="line.549"></a>
+<span class="sourceLineNo">509</span>  // return a WALEntry filter which only accepts "row", but not other rows<a name="line.509"></a>
+<span class="sourceLineNo">510</span>  public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span>    @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      try {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        super.replicate(replicateContext);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        doAssert(row);<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      } catch (Exception e) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        ex.set(e);<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      }<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      return true;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>    }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span>    @Override<a name="line.524"></a>
+<span class="sourceLineNo">525</span>    public WALEntryFilter getWALEntryfilter() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public Entry filter(Entry entry) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>          ArrayList&lt;Cell&gt; cells = entry.getEdit().getCells();<a name="line.529"></a>
+<span class="sourceLineNo">530</span>          int size = cells.size();<a name="line.530"></a>
+<span class="sourceLineNo">531</span>          for (int i = size-1; i &gt;= 0; i--) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>            Cell cell = cells.get(i);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>            if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.533"></a>
+<span class="sourceLineNo">534</span>              row, 0, row.length)) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>              cells.remove(i);<a name="line.535"></a>
+<span class="sourceLineNo">536</span>            }<a name="line.536"></a>
+<span class="sourceLineNo">537</span>          }<a name="line.537"></a>
+<span class="sourceLineNo">538</span>          return entry;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        }<a name="line.539"></a>
+<span class="sourceLineNo">540</span>      });<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>  }<a name="line.542"></a>
+<span class="sourceLineNo">543</span><a name="line.543"></a>
+<span class="sourceLineNo">544</span>  public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.544"></a>
+<span class="sourceLineNo">545</span>    private static boolean passedEntry = false;<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    public Entry filter(Entry entry) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>      passedEntry = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      return entry;<a name="line.549"></a>
 <span class="sourceLineNo">550</span>    }<a name="line.550"></a>
-<span class="sourceLineNo">551</span>  }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span>  public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>    public static boolean hasPassedAnEntry(){<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      return passedEntry;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    }<a name="line.554"></a>
 <span class="sourceLineNo">555</span>  }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>}<a name="line.556"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span>  public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span>  }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>}<a name="line.560"></a>
 
 
 


[24/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationBase.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationBase.html
index 25f375a..fa615cb 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationBase.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationBase.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9};
+var methods = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":9,"i5":9,"i6":10,"i7":9,"i8":9,"i9":10,"i10":9};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.69">TestReplicationBase</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.67">TestReplicationBase</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">This class is only a base for other integration-level replication tests.
  Do not add tests here.
@@ -190,17 +190,17 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>protected static byte[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code>static boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a></span></code>&nbsp;</td>
-</tr>
 <tr class="altColor">
 <td class="colFirst"><code>protected static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a></span></code>&nbsp;</td>
@@ -262,31 +262,43 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
 <td class="colFirst"><code>protected static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;prefix,
         byte[]&nbsp;row)</code>&nbsp;</td>
 </tr>
-<tr id="i2" class="altColor">
-<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a></span>()</code>&nbsp;</td>
-</tr>
 <tr id="i3" class="rowColor">
+<td class="colFirst"><code>private boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#peerExist-java.lang.String-">peerExist</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>protected static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>protected static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>protected static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></span>(int&nbsp;expectedRows,
                   int&nbsp;retries)</code>&nbsp;</td>
@@ -319,7 +331,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.75">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.68">LOG</a></pre>
 </li>
 </ul>
 <a name="conf1">
@@ -328,7 +340,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>conf1</h4>
-<pre>protected static&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.77">conf1</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.70">conf1</a></pre>
 </li>
 </ul>
 <a name="conf2">
@@ -337,7 +349,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>conf2</h4>
-<pre>protected static&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.78">conf2</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.71">conf2</a></pre>
 </li>
 </ul>
 <a name="CONF_WITH_LOCALFS">
@@ -346,7 +358,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CONF_WITH_LOCALFS</h4>
-<pre>protected static&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.79">CONF_WITH_LOCALFS</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.72">CONF_WITH_LOCALFS</a></pre>
 </li>
 </ul>
 <a name="zkw1">
@@ -355,7 +367,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>zkw1</h4>
-<pre>protected static&nbsp;org.apache.hadoop.hbase.zookeeper.ZKWatcher <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.81">zkw1</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.hbase.zookeeper.ZKWatcher <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.74">zkw1</a></pre>
 </li>
 </ul>
 <a name="zkw2">
@@ -364,7 +376,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>zkw2</h4>
-<pre>protected static&nbsp;org.apache.hadoop.hbase.zookeeper.ZKWatcher <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.82">zkw2</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.hbase.zookeeper.ZKWatcher <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.75">zkw2</a></pre>
 </li>
 </ul>
 <a name="admin">
@@ -373,7 +385,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>admin</h4>
-<pre>protected static&nbsp;org.apache.hadoop.hbase.client.replication.ReplicationAdmin <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.84">admin</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.hbase.client.replication.ReplicationAdmin <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.77">admin</a></pre>
 </li>
 </ul>
 <a name="hbaseAdmin">
@@ -382,7 +394,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>hbaseAdmin</h4>
-<pre>protected static&nbsp;org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.85">hbaseAdmin</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.78">hbaseAdmin</a></pre>
 </li>
 </ul>
 <a name="htable1">
@@ -391,7 +403,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>htable1</h4>
-<pre>protected static&nbsp;org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.87">htable1</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.80">htable1</a></pre>
 </li>
 </ul>
 <a name="htable2">
@@ -400,7 +412,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>htable2</h4>
-<pre>protected static&nbsp;org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.88">htable2</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.81">htable2</a></pre>
 </li>
 </ul>
 <a name="scopes">
@@ -409,7 +421,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>scopes</h4>
-<pre>protected static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.89">scopes</a></pre>
+<pre>protected static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.82">scopes</a></pre>
 </li>
 </ul>
 <a name="utility1">
@@ -418,7 +430,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>utility1</h4>
-<pre>protected static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.91">utility1</a></pre>
+<pre>protected static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.84">utility1</a></pre>
 </li>
 </ul>
 <a name="utility2">
@@ -427,7 +439,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>utility2</h4>
-<pre>protected static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.92">utility2</a></pre>
+<pre>protected static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.85">utility2</a></pre>
 </li>
 </ul>
 <a name="NB_ROWS_IN_BATCH">
@@ -436,7 +448,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>NB_ROWS_IN_BATCH</h4>
-<pre>protected static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.93">NB_ROWS_IN_BATCH</a></pre>
+<pre>protected static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.86">NB_ROWS_IN_BATCH</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.replication.TestReplicationBase.NB_ROWS_IN_BATCH">Constant Field Values</a></dd>
@@ -449,7 +461,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>NB_ROWS_IN_BIG_BATCH</h4>
-<pre>protected static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.94">NB_ROWS_IN_BIG_BATCH</a></pre>
+<pre>protected static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.87">NB_ROWS_IN_BIG_BATCH</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.replication.TestReplicationBase.NB_ROWS_IN_BIG_BATCH">Constant Field Values</a></dd>
@@ -462,7 +474,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>SLEEP_TIME</h4>
-<pre>protected static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.96">SLEEP_TIME</a></pre>
+<pre>protected static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.89">SLEEP_TIME</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.replication.TestReplicationBase.SLEEP_TIME">Constant Field Values</a></dd>
@@ -475,7 +487,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>NB_RETRIES</h4>
-<pre>protected static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.97">NB_RETRIES</a></pre>
+<pre>protected static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.90">NB_RETRIES</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.replication.TestReplicationBase.NB_RETRIES">Constant Field Values</a></dd>
@@ -488,7 +500,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>tableName</h4>
-<pre>protected static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.99">tableName</a></pre>
+<pre>protected static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.92">tableName</a></pre>
 </li>
 </ul>
 <a name="famName">
@@ -497,7 +509,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>famName</h4>
-<pre>protected static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.100">famName</a></pre>
+<pre>protected static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.93">famName</a></pre>
 </li>
 </ul>
 <a name="row">
@@ -506,7 +518,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>row</h4>
-<pre>protected static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.101">row</a></pre>
+<pre>protected static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.94">row</a></pre>
 </li>
 </ul>
 <a name="noRepfamName">
@@ -515,16 +527,20 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>noRepfamName</h4>
-<pre>protected static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.102">noRepfamName</a></pre>
+<pre>protected static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.95">noRepfamName</a></pre>
 </li>
 </ul>
-<a name="seperateOldWALs">
+<a name="PEER_ID2">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>seperateOldWALs</h4>
-<pre>public static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.105">seperateOldWALs</a></pre>
+<h4>PEER_ID2</h4>
+<pre>protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.96">PEER_ID2</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.replication.TestReplicationBase.PEER_ID2">Constant Field Values</a></dd>
+</dl>
 </li>
 </ul>
 </li>
@@ -541,7 +557,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestReplicationBase</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.69">TestReplicationBase</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.67">TestReplicationBase</a>()</pre>
 </li>
 </ul>
 </li>
@@ -552,13 +568,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="params--">
+<a name="isSerialPeer--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>params</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.108">params</a>()</pre>
+<h4>isSerialPeer</h4>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.98">isSerialPeer</a>()</pre>
 </li>
 </ul>
 <a name="cleanUp--">
@@ -567,7 +583,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanUp</h4>
-<pre>protected final&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.112">cleanUp</a>()
+<pre>protected final&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.102">cleanUp</a>()
                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>
@@ -583,7 +599,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForReplication</h4>
-<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.148">waitForReplication</a>(int&nbsp;expectedRows,
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.138">waitForReplication</a>(int&nbsp;expectedRows,
                                          int&nbsp;retries)
                                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
@@ -600,7 +616,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>loadData</h4>
-<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.168">loadData</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;prefix,
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.158">loadData</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;prefix,
                                byte[]&nbsp;row)
                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -615,7 +631,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setUpBeforeClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.179">setUpBeforeClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.169">setUpBeforeClass</a>()
                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -623,13 +639,55 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
+<a name="peerExist-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>peerExist</h4>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.240">peerExist</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
+                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="setUpBase--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUpBase</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.245">setUpBase</a>()
+               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="tearDownBase--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tearDownBase</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.254">tearDownBase</a>()
+                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="runSimplePutDeleteTest--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>runSimplePutDeleteTest</h4>
-<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.256">runSimplePutDeleteTest</a>()
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.260">runSimplePutDeleteTest</a>()
                                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>
@@ -645,7 +703,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>runSmallBatchTest</h4>
-<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.296">runSmallBatchTest</a>()
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.300">runSmallBatchTest</a>()
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>
@@ -661,7 +719,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>tearDownAfterClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.311">tearDownAfterClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationBase.html#line.315">tearDownAfterClass</a>()
                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html
index 9b8c95c..e84ec53 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html
@@ -18,8 +18,8 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.47">TestReplicationChangingPeerRegionservers</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.56">TestReplicationChangingPeerRegionservers</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></pre>
 <div class="block">Test handling of changes to the number of a peer's regionservers.</div>
 </li>
@@ -143,13 +143,17 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <td class="colFirst"><code>private static org.slf4j.Logger</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#serialPeer">serialPeer</a></span></code>&nbsp;</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
 .html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
 ">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -177,7 +181,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 </a>
 <h3>Method Summary</h3>
 <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
 <th class="colLast" scope="col">Method and Description</th>
@@ -187,10 +191,18 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#doPutTest-byte:A-">doPutTest</a></span>(byte[]&nbsp;row)</code>&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#isSerialPeer--">isSerialPeer</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#parameters--">parameters</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#setUp--">setUp</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#testChangingNumberOfPeerRegionServers--">testChangingNumberOfPeerRegionServers</a></span>()</code>&nbsp;</td>
 </tr>
@@ -200,7 +212,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
 aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDown
 Base</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -229,16 +241,25 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.50">CLASS_RULE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.59">CLASS_RULE</a></pre>
 </li>
 </ul>
 <a name="LOG">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.53">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.62">LOG</a></pre>
+</li>
+</ul>
+<a name="serialPeer">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>serialPeer</h4>
+<pre>public&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.66">serialPeer</a></pre>
 </li>
 </ul>
 </li>
@@ -255,7 +276,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestReplicationChangingPeerRegionservers</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.47">TestReplicationChangingPeerRegionservers</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.56">TestReplicationChangingPeerRegionservers</a>()</pre>
 </li>
 </ul>
 </li>
@@ -266,13 +287,35 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Method Detail</h3>
+<a name="isSerialPeer--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSerialPeer</h4>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.69">isSerialPeer</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="parameters--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parameters</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.74">parameters</a>()</pre>
+</li>
+</ul>
 <a name="setUp--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>setUp</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.60">setUp</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.82">setUp</a>()
            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -286,7 +329,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>testChangingNumberOfPeerRegionServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.96">testChangingNumberOfPeerRegionServers</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.118">testChangingNumberOfPeerRegionServers</a>()
                                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>
@@ -302,7 +345,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>doPutTest</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.122">doPutTest</a>(byte[]&nbsp;row)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#line.142">doPutTest</a>(byte[]&nbsp;row)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDisableInactivePeer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDisableInactivePeer.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDisableInactivePeer.html
index 4a56671..c9af198 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDisableInactivePeer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDisableInactivePeer.html
@@ -148,7 +148,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
 .html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
 ">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -193,7 +193,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
 aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterC
 lass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html
index 9bf4836..6f455f3 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html
@@ -148,7 +148,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
 .html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
 ">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -220,7 +220,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
 aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterC
 lass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -348,7 +348,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>testEditsBehindDroppedTable</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html#line.124">testEditsBehindDroppedTable</a>(boolean&nbsp;allowProceeding,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html#line.130">testEditsBehindDroppedTable</a>(boolean&nbsp;allowProceeding,
                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tName)
                                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
@@ -363,7 +363,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>testEditsBehindDroppedTableTiming</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html#line.192">testEditsBehindDroppedTableTiming</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html#line.198">testEditsBehindDroppedTableTiming</a>()
                                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -377,7 +377,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>verifyReplicationProceeded</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html#line.264">verifyReplicationProceeded</a>(byte[]&nbsp;rowkey)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html#line.270">verifyReplicationProceeded</a>(byte[]&nbsp;rowkey)
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -391,7 +391,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>verifyReplicationStuck</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html#line.281">verifyReplicationStuck</a>(byte[]&nbsp;rowkey)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.html#line.287">verifyReplicationStuck</a>(byte[]&nbsp;rowkey)
                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEmptyWALRecovery.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEmptyWALRecovery.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEmptyWALRecovery.html
index e8920f1..9a2b059 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEmptyWALRecovery.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEmptyWALRecovery.html
@@ -144,7 +144,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
 .html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
 ">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -197,7 +197,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
 aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterC
 lass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html
index 46df856..d9eba46 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html
@@ -121,7 +121,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.540">TestReplicationEndpoint.EverythingPassesWALEntryFilter</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.544">TestReplicationEndpoint.EverythingPassesWALEntryFilter</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements org.apache.hadoop.hbase.replication.WALEntryFilter</pre>
 </li>
@@ -214,7 +214,7 @@ implements org.apache.hadoop.hbase.replication.WALEntryFilter</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>passedEntry</h4>
-<pre>private static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html#line.541">passedEntry</a></pre>
+<pre>private static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html#line.545">passedEntry</a></pre>
 </li>
 </ul>
 </li>
@@ -231,7 +231,7 @@ implements org.apache.hadoop.hbase.replication.WALEntryFilter</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>EverythingPassesWALEntryFilter</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html#line.540">EverythingPassesWALEntryFilter</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html#line.544">EverythingPassesWALEntryFilter</a>()</pre>
 </li>
 </ul>
 </li>
@@ -248,7 +248,7 @@ implements org.apache.hadoop.hbase.replication.WALEntryFilter</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>filter</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.wal.WAL.Entry&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html#line.543">filter</a>(org.apache.hadoop.hbase.wal.WAL.Entry&nbsp;entry)</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.wal.WAL.Entry&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html#line.547">filter</a>(org.apache.hadoop.hbase.wal.WAL.Entry&nbsp;entry)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>filter</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.replication.WALEntryFilter</code></dd>
@@ -261,7 +261,7 @@ implements org.apache.hadoop.hbase.replication.WALEntryFilter</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hasPassedAnEntry</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html#line.548">hasPassedAnEntry</a>()</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html#line.552">hasPassedAnEntry</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html
index cd63d24..5018214 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html
@@ -116,7 +116,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.553">TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.html#line.557">TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationEndpoint.EverythingPassesWALEntryFilter</a></pre>
 </li>
 </ul>
@@ -181,7 +181,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>EverythingPassesWALEntryFilterSubclass</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html#line.553">EverythingPassesWALEntryFilterSubclass</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilterSubclass.html#line.557">EverythingPassesWALEntryFilterSubclass</a>()</pre>
 </li>
 </ul>
 </li>


[34/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html b/apidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
new file mode 100644
index 0000000..7e8a509
--- /dev/null
+++ b/apidocs/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
@@ -0,0 +1,467 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RpcThrottlingException (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RpcThrottlingException (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RpcThrottlingException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.quotas</div>
+<h2 title="Class RpcThrottlingException" class="title">Class RpcThrottlingException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">java.io.IOException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">org.apache.hadoop.hbase.HBaseIOException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.quotas.RpcThrottlingException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>@InterfaceAudience.Public
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.27">RpcThrottlingException</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
+<div class="block">Describe the throttling result. TODO: At some point this will be handled on the client side to
+ prevent operation to go on the server if the waitInterval is greater than the one got as result
+ of this exception.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../serialized-form.html#org.apache.hadoop.hbase.quotas.RpcThrottlingException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-java.lang.String-">RpcThrottlingException</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&nbsp;type,
+                      long&nbsp;waitInterval,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-java.lang.String-">RpcThrottlingException</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getType--">getType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getWaitInterval--">getWaitInterval</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or
  interface in java.lang">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/
 api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="RpcThrottlingException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RpcThrottlingException</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.45">RpcThrottlingException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
+</li>
+</ul>
+<a name="RpcThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RpcThrottlingException</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.61">RpcThrottlingException</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&nbsp;type,
+                              long&nbsp;waitInterval,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.67">getType</a>()</pre>
+</li>
+</ul>
+<a name="getWaitInterval--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWaitInterval</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.71">getWaitInterval</a>()</pre>
+</li>
+</ul>
+<a name="throwNumRequestsExceeded-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwNumRequestsExceeded</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.75">throwNumRequestsExceeded</a>(long&nbsp;waitInterval)
+                                     throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwRequestSizeExceeded-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwRequestSizeExceeded</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.80">throwRequestSizeExceeded</a>(long&nbsp;waitInterval)
+                                     throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwNumReadRequestsExceeded-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwNumReadRequestsExceeded</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.85">throwNumReadRequestsExceeded</a>(long&nbsp;waitInterval)
+                                         throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwNumWriteRequestsExceeded-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwNumWriteRequestsExceeded</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.90">throwNumWriteRequestsExceeded</a>(long&nbsp;waitInterval)
+                                          throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwWriteSizeExceeded-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>throwWriteSizeExceeded</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.95">throwWriteSizeExceeded</a>(long&nbsp;waitInterval)
+                                   throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="throwReadSizeExceeded-long-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>throwReadSizeExceeded</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#line.99">throwReadSizeExceeded</a>(long&nbsp;waitInterval)
+                                  throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RpcThrottlingException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/SpaceLimitingException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/SpaceLimitingException.html b/apidocs/org/apache/hadoop/hbase/quotas/SpaceLimitingException.html
index 240fd7c..28a84b5 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/SpaceLimitingException.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/SpaceLimitingException.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -327,7 +327,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html b/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
index 84f694c..263c114 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
@@ -123,7 +123,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Public
-public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.38">ThrottlingException.Type</a>
+public static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.41">ThrottlingException.Type</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&gt;</pre>
 </li>
 </ul>
@@ -223,7 +223,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NumRequestsExceeded</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.39">NumRequestsExceeded</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.42">NumRequestsExceeded</a></pre>
 </li>
 </ul>
 <a name="RequestSizeExceeded">
@@ -232,7 +232,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>RequestSizeExceeded</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.40">RequestSizeExceeded</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.43">RequestSizeExceeded</a></pre>
 </li>
 </ul>
 <a name="NumReadRequestsExceeded">
@@ -241,7 +241,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NumReadRequestsExceeded</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.41">NumReadRequestsExceeded</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.44">NumReadRequestsExceeded</a></pre>
 </li>
 </ul>
 <a name="NumWriteRequestsExceeded">
@@ -250,7 +250,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NumWriteRequestsExceeded</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.42">NumWriteRequestsExceeded</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.45">NumWriteRequestsExceeded</a></pre>
 </li>
 </ul>
 <a name="WriteSizeExceeded">
@@ -259,7 +259,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>WriteSizeExceeded</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.43">WriteSizeExceeded</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.46">WriteSizeExceeded</a></pre>
 </li>
 </ul>
 <a name="ReadSizeExceeded">
@@ -268,7 +268,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ReadSizeExceeded</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.44">ReadSizeExceeded</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.47">ReadSizeExceeded</a></pre>
 </li>
 </ul>
 </li>
@@ -285,7 +285,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.24">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.41">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -305,7 +305,7 @@ for (ThrottlingException.Type c : ThrottlingException.Type.values())
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.24">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.41">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html b/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html
index 4ddef57..c8e5061 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.html
@@ -18,8 +18,8 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":10,"i2":10,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9};
-var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":41,"i1":42,"i2":42,"i3":41,"i4":41,"i5":41,"i6":41,"i7":41,"i8":41};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
@@ -142,9 +142,13 @@ var activeTableTab = "activeTableTab";
 <dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
 </dl>
 <hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
 <br>
-<pre>@InterfaceAudience.Public
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.34">ThrottlingException</a>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+ @InterfaceAudience.Public
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.37">ThrottlingException</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededException.html" title="class in org.apache.hadoop.hbase.quotas">QuotaExceededException</a></pre>
 <div class="block">Describe the throttling result.
 
@@ -175,7 +179,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -192,12 +198,16 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-java.lang.String-">ThrottlingException</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-java.lang.String-">ThrottlingException</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-java.lang.String-">ThrottlingException</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;type,
                    long&nbsp;waitInterval,
-                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>&nbsp;</td>
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -209,46 +219,64 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 </a>
 <h3>Method Summary</h3>
 <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#formatTime-long-">formatTime</a></span>(long&nbsp;timeDiff)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#formatTime-long-">formatTime</a></span>(long&nbsp;timeDiff)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getWaitInterval--">getWaitInterval</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getWaitInterval--">getWaitInterval</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr id="i3" class="rowColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr id="i5" class="rowColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr id="i6" class="altColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr id="i7" class="rowColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr id="i8" class="altColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
@@ -285,7 +313,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>ThrottlingException</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.61">ThrottlingException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.64">ThrottlingException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
 <a name="ThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-java.lang.String-">
@@ -294,9 +323,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ThrottlingException</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.77">ThrottlingException</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;type,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.80">ThrottlingException</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;type,
                            long&nbsp;waitInterval,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
 </li>
@@ -313,7 +343,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>getType</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.83">getType</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.86">getType</a>()</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
 <a name="getWaitInterval--">
@@ -322,7 +353,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>getWaitInterval</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.87">getWaitInterval</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.90">getWaitInterval</a>()</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
 <a name="throwNumRequestsExceeded-long-">
@@ -331,8 +363,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>throwNumRequestsExceeded</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.91">throwNumRequestsExceeded</a>(long&nbsp;waitInterval)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.94">throwNumRequestsExceeded</a>(long&nbsp;waitInterval)
                                      throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -345,8 +378,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>throwRequestSizeExceeded</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.96">throwRequestSizeExceeded</a>(long&nbsp;waitInterval)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.99">throwRequestSizeExceeded</a>(long&nbsp;waitInterval)
                                      throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -359,8 +393,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>throwNumReadRequestsExceeded</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.101">throwNumReadRequestsExceeded</a>(long&nbsp;waitInterval)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.104">throwNumReadRequestsExceeded</a>(long&nbsp;waitInterval)
                                          throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -373,8 +408,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>throwNumWriteRequestsExceeded</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.106">throwNumWriteRequestsExceeded</a>(long&nbsp;waitInterval)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.109">throwNumWriteRequestsExceeded</a>(long&nbsp;waitInterval)
                                           throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -387,8 +423,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>throwWriteSizeExceeded</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.111">throwWriteSizeExceeded</a>(long&nbsp;waitInterval)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.114">throwWriteSizeExceeded</a>(long&nbsp;waitInterval)
                                    throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -401,8 +438,9 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockList">
 <li class="blockList">
 <h4>throwReadSizeExceeded</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.116">throwReadSizeExceeded</a>(long&nbsp;waitInterval)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.119">throwReadSizeExceeded</a>(long&nbsp;waitInterval)
                                   throws <a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></code></dd>
@@ -415,7 +453,8 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaExceededExce
 <ul class="blockListLast">
 <li class="blockList">
 <h4>formatTime</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.127">formatTime</a>(long&nbsp;timeDiff)</pre>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html#line.130">formatTime</a>(long&nbsp;timeDiff)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html b/apidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html
index 3bd90b2..18c4b08 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/class-use/QuotaExceededException.html
@@ -111,7 +111,9 @@
 <tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></span></code>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
 </td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html b/apidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html
new file mode 100644
index 0000000..0f72e80
--- /dev/null
+++ b/apidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html
@@ -0,0 +1,191 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type" class="title">Uses of Class<br>org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.quotas">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a> that return <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#getType--">getType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.Type.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.Type.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a> with parameters of type <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#RpcThrottlingException-org.apache.hadoop.hbase.quotas.RpcThrottlingException.Type-long-java.lang.String-">RpcThrottlingException</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&nbsp;type,
+                      long&nbsp;waitInterval,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html b/apidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html
new file mode 100644
index 0000000..d963d0b
--- /dev/null
+++ b/apidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html
@@ -0,0 +1,185 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.quotas.RpcThrottlingException" class="title">Uses of Class<br>org.apache.hadoop.hbase.quotas.RpcThrottlingException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.quotas">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a> in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/quotas/package-summary.html">org.apache.hadoop.hbase.quotas</a> that throw <a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">RpcThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html" target="_top">Frames</a></li>
+<li><a href="RpcThrottlingException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html b/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html
index a9a8939..f4b27a7 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html
@@ -104,7 +104,9 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#getType--">getType</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></code></td>
@@ -130,7 +132,9 @@ the order they are declared.</div>
 <tr class="altColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#ThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-java.lang.String-">ThrottlingException</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;type,
                    long&nbsp;waitInterval,
-                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>&nbsp;</td>
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 </tbody>
 </table>


[21/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html
index 7dbb5cc..79759cc 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html
@@ -18,8 +18,8 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.62">TestReplicationSmallTests</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.69">TestReplicationSmallTests</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></pre>
 </li>
 </ul>
@@ -146,13 +146,17 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#PEER_ID">PEER_ID</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#serialPeer">serialPeer</a></span></code>&nbsp;</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
 .html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
 ">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -180,60 +184,68 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 </a>
 <h3>Method Summary</h3>
 <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#isSerialPeer--">isSerialPeer</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#parameters--">parameters</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#setUp--">setUp</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i1" class="rowColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#testAddAndRemoveClusters--">testAddAndRemoveClusters</a></span>()</code>
 <div class="block">Integration test for TestReplicationAdmin, removes and re-add a peer cluster</div>
 </td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#testDeleteTypes--">testDeleteTypes</a></span>()</code>
 <div class="block">Verify that version and column delete marker types are replicated correctly.</div>
 </td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#testDisableEnable--">testDisableEnable</a></span>()</code>
 <div class="block">Test disable/enable replication, trying to insert, make sure nothing's replicated, enable it,
  the insert should be replicated</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#testLoading--">testLoading</a></span>()</code>
 <div class="block">Do a more intense version testSmallBatch, one that will trigger wal rolling and other
  non-trivial code paths</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#testReplicationInReplay--">testReplicationInReplay</a></span>()</code>
 <div class="block">Test for HBase-15259 WALEdits under replay will also be replicated</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#testSimplePutDelete--">testSimplePutDelete</a></span>()</code>
 <div class="block">Add a row, check it's replicated, delete it, check's gone</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#testSmallBatch--">testSmallBatch</a></span>()</code>
 <div class="block">Try a small batch upload using the write buffer, check it's replicated</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#testVerifyListReplicatedTable--">testVerifyListReplicatedTable</a></span>()</code>
 <div class="block">Test for HBASE-8663</div>
@@ -245,7 +257,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
 aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDown
 Base</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -274,7 +286,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.65">CLASS_RULE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.72">CLASS_RULE</a></pre>
 </li>
 </ul>
 <a name="LOG">
@@ -283,22 +295,31 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.68">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.75">LOG</a></pre>
 </li>
 </ul>
 <a name="PEER_ID">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>PEER_ID</h4>
-<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.69">PEER_ID</a></pre>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.76">PEER_ID</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.replication.TestReplicationSmallTests.PEER_ID">Constant Field Values</a></dd>
 </dl>
 </li>
 </ul>
+<a name="serialPeer">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>serialPeer</h4>
+<pre>public&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.79">serialPeer</a></pre>
+</li>
+</ul>
 </li>
 </ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -313,7 +334,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestReplicationSmallTests</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.62">TestReplicationSmallTests</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.69">TestReplicationSmallTests</a>()</pre>
 </li>
 </ul>
 </li>
@@ -324,13 +345,35 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Method Detail</h3>
+<a name="isSerialPeer--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSerialPeer</h4>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.82">isSerialPeer</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="parameters--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parameters</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.87">parameters</a>()</pre>
+</li>
+</ul>
 <a name="setUp--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>setUp</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.72">setUp</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.92">setUp</a>()
            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -344,7 +387,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>testDeleteTypes</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.80">testDeleteTypes</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.100">testDeleteTypes</a>()
                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Verify that version and column delete marker types are replicated correctly.</div>
 <dl>
@@ -359,7 +402,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>testSimplePutDelete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.166">testSimplePutDelete</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.186">testSimplePutDelete</a>()
                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Add a row, check it's replicated, delete it, check's gone</div>
 <dl>
@@ -374,7 +417,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>testSmallBatch</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.175">testSmallBatch</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.195">testSmallBatch</a>()
                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Try a small batch upload using the write buffer, check it's replicated</div>
 <dl>
@@ -389,7 +432,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>testDisableEnable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.185">testDisableEnable</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.205">testDisableEnable</a>()
                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test disable/enable replication, trying to insert, make sure nothing's replicated, enable it,
  the insert should be replicated</div>
@@ -405,7 +448,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>testAddAndRemoveClusters</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.225">testAddAndRemoveClusters</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.245">testAddAndRemoveClusters</a>()
                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Integration test for TestReplicationAdmin, removes and re-add a peer cluster</div>
 <dl>
@@ -420,7 +463,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>testLoading</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.278">testLoading</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.298">testLoading</a>()
                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Do a more intense version testSmallBatch, one that will trigger wal rolling and other
  non-trivial code paths</div>
@@ -436,7 +479,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>testVerifyListReplicatedTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.339">testVerifyListReplicatedTable</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.359">testVerifyListReplicatedTable</a>()
                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test for HBASE-8663
  <p>
@@ -455,7 +498,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>testReplicationInReplay</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.388">testReplicationInReplay</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#line.408">testReplicationInReplay</a>()
                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test for HBase-15259 WALEdits under replay will also be replicated</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationStatus.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationStatus.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationStatus.html
index 4f6900b..0104f75 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationStatus.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationStatus.html
@@ -152,7 +152,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
 .html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
 ">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -202,7 +202,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
 aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterC
 lass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html
index cbf986d..ce1e4ed 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.50">TestReplicationSyncUpTool</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.52">TestReplicationSyncUpTool</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></pre>
 </li>
 </ul>
@@ -204,7 +204,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_B
 ATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#
 zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_B
 ATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>
 , <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -263,6 +263,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 </tr>
 <tr id="i6" class="altColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#tearDownBase--">tearDownBase</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#testSyncUpTool--">testSyncUpTool</a></span>()</code>
 <div class="block">Add a row to a table in each cluster, check it's replicated, delete it,
  check's gone Also check the puts and deletes are not replicated back to
@@ -275,7 +279,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
 aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterC
 lass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -304,7 +308,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.53">CLASS_RULE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.55">CLASS_RULE</a></pre>
 </li>
 </ul>
 <a name="LOG">
@@ -313,7 +317,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.56">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.58">LOG</a></pre>
 </li>
 </ul>
 <a name="t1_su">
@@ -322,7 +326,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>t1_su</h4>
-<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.58">t1_su</a></pre>
+<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.60">t1_su</a></pre>
 </li>
 </ul>
 <a name="t2_su">
@@ -331,7 +335,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>t2_su</h4>
-<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.59">t2_su</a></pre>
+<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.61">t2_su</a></pre>
 </li>
 </ul>
 <a name="famName">
@@ -340,7 +344,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>famName</h4>
-<pre>protected static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.61">famName</a></pre>
+<pre>protected static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.63">famName</a></pre>
 </li>
 </ul>
 <a name="qualName">
@@ -349,7 +353,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>qualName</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.62">qualName</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.64">qualName</a></pre>
 </li>
 </ul>
 <a name="noRepfamName">
@@ -358,7 +362,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>noRepfamName</h4>
-<pre>protected static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.64">noRepfamName</a></pre>
+<pre>protected static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.66">noRepfamName</a></pre>
 </li>
 </ul>
 <a name="t1_syncupSource">
@@ -367,7 +371,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>t1_syncupSource</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.HTableDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.66">t1_syncupSource</a></pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.HTableDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.68">t1_syncupSource</a></pre>
 </li>
 </ul>
 <a name="t1_syncupTarget">
@@ -376,7 +380,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>t1_syncupTarget</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.HTableDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.66">t1_syncupTarget</a></pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.HTableDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.68">t1_syncupTarget</a></pre>
 </li>
 </ul>
 <a name="t2_syncupSource">
@@ -385,7 +389,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>t2_syncupSource</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.HTableDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.67">t2_syncupSource</a></pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.HTableDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.69">t2_syncupSource</a></pre>
 </li>
 </ul>
 <a name="t2_syncupTarget">
@@ -394,7 +398,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>t2_syncupTarget</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.HTableDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.67">t2_syncupTarget</a></pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.HTableDescriptor <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.69">t2_syncupTarget</a></pre>
 </li>
 </ul>
 <a name="ht1Source">
@@ -403,7 +407,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>ht1Source</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.69">ht1Source</a></pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.71">ht1Source</a></pre>
 </li>
 </ul>
 <a name="ht2Source">
@@ -412,7 +416,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>ht2Source</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.69">ht2Source</a></pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.71">ht2Source</a></pre>
 </li>
 </ul>
 <a name="ht1TargetAtPeer1">
@@ -421,7 +425,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>ht1TargetAtPeer1</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.69">ht1TargetAtPeer1</a></pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.71">ht1TargetAtPeer1</a></pre>
 </li>
 </ul>
 <a name="ht2TargetAtPeer1">
@@ -430,7 +434,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ht2TargetAtPeer1</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.69">ht2TargetAtPeer1</a></pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.client.Table <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.71">ht2TargetAtPeer1</a></pre>
 </li>
 </ul>
 </li>
@@ -447,7 +451,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestReplicationSyncUpTool</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.50">TestReplicationSyncUpTool</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.52">TestReplicationSyncUpTool</a>()</pre>
 </li>
 </ul>
 </li>
@@ -464,7 +468,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>setUp</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.72">setUp</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.74">setUp</a>()
            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -472,13 +476,29 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 </dl>
 </li>
 </ul>
+<a name="tearDownBase--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tearDownBase</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.105">tearDownBase</a>()
+                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="testSyncUpTool--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>testSyncUpTool</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.109">testSyncUpTool</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.116">testSyncUpTool</a>()
                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Add a row to a table in each cluster, check it's replicated, delete it,
  check's gone Also check the puts and deletes are not replicated back to
@@ -495,7 +515,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>setupReplication</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.186">setupReplication</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.193">setupReplication</a>()
                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -509,7 +529,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>putAndReplicateRows</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.222">putAndReplicateRows</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.229">putAndReplicateRows</a>()
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -523,7 +543,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>mimicSyncUpAfterDelete</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.276">mimicSyncUpAfterDelete</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.283">mimicSyncUpAfterDelete</a>()
                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -537,7 +557,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockList">
 <li class="blockList">
 <h4>mimicSyncUpAfterPut</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.346">mimicSyncUpAfterPut</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.353">mimicSyncUpAfterPut</a>()
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -551,7 +571,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>syncUp</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.423">syncUp</a>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;ut)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#line.430">syncUp</a>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;ut)
                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpToolWithBulkLoadedData.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpToolWithBulkLoadedData.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpToolWithBulkLoadedData.html
index 844960c..c7167ad 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpToolWithBulkLoadedData.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationSyncUpToolWithBulkLoadedData.html
@@ -160,7 +160,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_B
 ATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#
 zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_B
 ATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>
 , <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -235,14 +235,14 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationSyncUpTool</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setUp--">setUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setupReplication--">setupReplication</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#syncUp-org.apache.hadoop.hbase.HBaseTestingUtility-">syncUp</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setUp--">setUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#setupReplication--">setupReplication</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#syncUp-org.apache.hadoop.hbase.HBaseTestingUtility-">syncUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#tearDownBase--">tearDownBase</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">wai
 tForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestVerifyReplication.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestVerifyReplication.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestVerifyReplication.html
index 1f5d4ae..1b1b493 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestVerifyReplication.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestVerifyReplication.html
@@ -156,7 +156,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
 .html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
 ">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -245,7 +245,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
 aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterC
 lass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationBase.html b/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationBase.html
index 192d67e..fbd4097 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationBase.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationBase.html
@@ -178,15 +178,23 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSWithSeparateOldWALs</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRS</a></span></code>
 <div class="block">Runs the TestReplicationKillRS test and selects the RS to kill in the slave cluster
  Do not add other tests in this class.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRSWithSeparateOldWALs</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationSmallTests</a></span></code>&nbsp;</td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillMasterRSWithSeparateOldWALs.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillMasterRSWithSeparateOldWALs.html b/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillMasterRSWithSeparateOldWALs.html
new file mode 100644
index 0000000..8af29c3
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/class-use/TestReplicationKillMasterRSWithSeparateOldWALs.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.replication.TestReplicationKillMasterRSWithSeparateOldWALs (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.replication.TestReplicationKillMasterRSWithSeparateOldWALs (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/replication/class-use/TestReplicationKillMasterRSWithSeparateOldWALs.html" target="_top">Frames</a></li>
+<li><a href="TestReplicationKillMasterRSWithSeparateOldWALs.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.replication.TestReplicationKillMasterRSWithSeparateOldWALs" class="title">Uses of Class<br>org.apache.hadoop.hbase.replication.TestReplicationKillMasterRSWithSeparateOldWALs</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.replication.TestReplicationKillMasterRSWithSeparateOldWALs</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/replication/class-use/TestReplicationKillMasterRSWithSeparateOldWALs.html" target="_top">Frames</a></li>
+<li><a href="TestReplicationKillMasterRSWithSeparateOldWALs.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>


[02/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html
index 5ddb646..9c2663d 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html
@@ -27,411 +27,418 @@
 <span class="sourceLineNo">019</span><a name="line.19"></a>
 <span class="sourceLineNo">020</span>import static org.junit.Assert.assertEquals;<a name="line.20"></a>
 <span class="sourceLineNo">021</span><a name="line.21"></a>
-<span class="sourceLineNo">022</span>import java.util.ArrayList;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.util.List;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.HConstants;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.TableName;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.client.Delete;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.client.Put;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.client.Table;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.client.replication.ReplicationAdmin;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.replication.regionserver.ReplicationSyncUp;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.testclassification.ReplicationTests;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.util.ToolRunner;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.junit.Before;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.junit.ClassRule;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.junit.Test;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.junit.experimental.categories.Category;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.slf4j.Logger;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.slf4j.LoggerFactory;<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>@Category({ReplicationTests.class, LargeTests.class})<a name="line.49"></a>
-<span class="sourceLineNo">050</span>public class TestReplicationSyncUpTool extends TestReplicationBase {<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>  @ClassRule<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.53"></a>
-<span class="sourceLineNo">054</span>      HBaseClassTestRule.forClass(TestReplicationSyncUpTool.class);<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>  private static final Logger LOG = LoggerFactory.getLogger(TestReplicationSyncUpTool.class);<a name="line.56"></a>
+<span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.ArrayList;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.List;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.HConstants;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.TableName;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.client.Delete;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.client.Put;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.client.Table;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.replication.ReplicationAdmin;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.replication.regionserver.ReplicationSyncUp;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.testclassification.ReplicationTests;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.util.ToolRunner;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.junit.After;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.junit.Before;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.junit.ClassRule;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.junit.Test;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.junit.experimental.categories.Category;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.slf4j.Logger;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.slf4j.LoggerFactory;<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>@Category({ ReplicationTests.class, LargeTests.class })<a name="line.51"></a>
+<span class="sourceLineNo">052</span>public class TestReplicationSyncUpTool extends TestReplicationBase {<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>  @ClassRule<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.55"></a>
+<span class="sourceLineNo">056</span>      HBaseClassTestRule.forClass(TestReplicationSyncUpTool.class);<a name="line.56"></a>
 <span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>  private static final TableName t1_su = TableName.valueOf("t1_syncup");<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  private static final TableName t2_su = TableName.valueOf("t2_syncup");<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>  protected static final byte[] famName = Bytes.toBytes("cf1");<a name="line.61"></a>
-<span class="sourceLineNo">062</span>  private static final byte[] qualName = Bytes.toBytes("q1");<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>  protected static final byte[] noRepfamName = Bytes.toBytes("norep");<a name="line.64"></a>
+<span class="sourceLineNo">058</span>  private static final Logger LOG = LoggerFactory.getLogger(TestReplicationSyncUpTool.class);<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>  private static final TableName t1_su = TableName.valueOf("t1_syncup");<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  private static final TableName t2_su = TableName.valueOf("t2_syncup");<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>  protected static final byte[] famName = Bytes.toBytes("cf1");<a name="line.63"></a>
+<span class="sourceLineNo">064</span>  private static final byte[] qualName = Bytes.toBytes("q1");<a name="line.64"></a>
 <span class="sourceLineNo">065</span><a name="line.65"></a>
-<span class="sourceLineNo">066</span>  private HTableDescriptor t1_syncupSource, t1_syncupTarget;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  private HTableDescriptor t2_syncupSource, t2_syncupTarget;<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>  protected Table ht1Source, ht2Source, ht1TargetAtPeer1, ht2TargetAtPeer1;<a name="line.69"></a>
+<span class="sourceLineNo">066</span>  protected static final byte[] noRepfamName = Bytes.toBytes("norep");<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>  private HTableDescriptor t1_syncupSource, t1_syncupTarget;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  private HTableDescriptor t2_syncupSource, t2_syncupTarget;<a name="line.69"></a>
 <span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>  @Before<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  public void setUp() throws Exception {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    HColumnDescriptor fam;<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>    t1_syncupSource = new HTableDescriptor(t1_su);<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    fam = new HColumnDescriptor(famName);<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    t1_syncupSource.addFamily(fam);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    fam = new HColumnDescriptor(noRepfamName);<a name="line.79"></a>
+<span class="sourceLineNo">071</span>  protected Table ht1Source, ht2Source, ht1TargetAtPeer1, ht2TargetAtPeer1;<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>  @Before<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  public void setUp() throws Exception {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    HColumnDescriptor fam;<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>    t1_syncupSource = new HTableDescriptor(t1_su);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    fam = new HColumnDescriptor(famName);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.79"></a>
 <span class="sourceLineNo">080</span>    t1_syncupSource.addFamily(fam);<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>    t1_syncupTarget = new HTableDescriptor(t1_su);<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    fam = new HColumnDescriptor(famName);<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    t1_syncupTarget.addFamily(fam);<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    fam = new HColumnDescriptor(noRepfamName);<a name="line.85"></a>
+<span class="sourceLineNo">081</span>    fam = new HColumnDescriptor(noRepfamName);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    t1_syncupSource.addFamily(fam);<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>    t1_syncupTarget = new HTableDescriptor(t1_su);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    fam = new HColumnDescriptor(famName);<a name="line.85"></a>
 <span class="sourceLineNo">086</span>    t1_syncupTarget.addFamily(fam);<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>    t2_syncupSource = new HTableDescriptor(t2_su);<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    fam = new HColumnDescriptor(famName);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    t2_syncupSource.addFamily(fam);<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    fam = new HColumnDescriptor(noRepfamName);<a name="line.92"></a>
+<span class="sourceLineNo">087</span>    fam = new HColumnDescriptor(noRepfamName);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    t1_syncupTarget.addFamily(fam);<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>    t2_syncupSource = new HTableDescriptor(t2_su);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    fam = new HColumnDescriptor(famName);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.92"></a>
 <span class="sourceLineNo">093</span>    t2_syncupSource.addFamily(fam);<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>    t2_syncupTarget = new HTableDescriptor(t2_su);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    fam = new HColumnDescriptor(famName);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    t2_syncupTarget.addFamily(fam);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    fam = new HColumnDescriptor(noRepfamName);<a name="line.98"></a>
+<span class="sourceLineNo">094</span>    fam = new HColumnDescriptor(noRepfamName);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    t2_syncupSource.addFamily(fam);<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>    t2_syncupTarget = new HTableDescriptor(t2_su);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    fam = new HColumnDescriptor(famName);<a name="line.98"></a>
 <span class="sourceLineNo">099</span>    t2_syncupTarget.addFamily(fam);<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>  }<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  /**<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * Add a row to a table in each cluster, check it's replicated, delete it,<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   * check's gone Also check the puts and deletes are not replicated back to<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   * the originating cluster.<a name="line.106"></a>
-<span class="sourceLineNo">107</span>   */<a name="line.107"></a>
-<span class="sourceLineNo">108</span>  @Test<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  public void testSyncUpTool() throws Exception {<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>    /**<a name="line.111"></a>
-<span class="sourceLineNo">112</span>     * Set up Replication: on Master and one Slave<a name="line.112"></a>
-<span class="sourceLineNo">113</span>     * Table: t1_syncup and t2_syncup<a name="line.113"></a>
-<span class="sourceLineNo">114</span>     * columnfamily:<a name="line.114"></a>
-<span class="sourceLineNo">115</span>     *    'cf1'  : replicated<a name="line.115"></a>
-<span class="sourceLineNo">116</span>     *    'norep': not replicated<a name="line.116"></a>
-<span class="sourceLineNo">117</span>     */<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    setupReplication();<a name="line.118"></a>
-<span class="sourceLineNo">119</span><a name="line.119"></a>
-<span class="sourceLineNo">120</span>    /**<a name="line.120"></a>
-<span class="sourceLineNo">121</span>     * at Master:<a name="line.121"></a>
-<span class="sourceLineNo">122</span>     * t1_syncup: put 100 rows into cf1, and 1 rows into norep<a name="line.122"></a>
-<span class="sourceLineNo">123</span>     * t2_syncup: put 200 rows into cf1, and 1 rows into norep<a name="line.123"></a>
-<span class="sourceLineNo">124</span>     *<a name="line.124"></a>
-<span class="sourceLineNo">125</span>     * verify correctly replicated to slave<a name="line.125"></a>
-<span class="sourceLineNo">126</span>     */<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    putAndReplicateRows();<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>    /**<a name="line.129"></a>
-<span class="sourceLineNo">130</span>     * Verify delete works<a name="line.130"></a>
+<span class="sourceLineNo">100</span>    fam = new HColumnDescriptor(noRepfamName);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    t2_syncupTarget.addFamily(fam);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  @After<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  public void tearDownBase() throws IOException {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    // Do nothing, just replace the super tearDown. because the super tearDown will use the<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    // out-of-data HBase admin to remove replication peer, which will be result in failure.<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>  /**<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   * Add a row to a table in each cluster, check it's replicated, delete it,<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   * check's gone Also check the puts and deletes are not replicated back to<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   * the originating cluster.<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  @Test<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  public void testSyncUpTool() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span>    /**<a name="line.118"></a>
+<span class="sourceLineNo">119</span>     * Set up Replication: on Master and one Slave<a name="line.119"></a>
+<span class="sourceLineNo">120</span>     * Table: t1_syncup and t2_syncup<a name="line.120"></a>
+<span class="sourceLineNo">121</span>     * columnfamily:<a name="line.121"></a>
+<span class="sourceLineNo">122</span>     *    'cf1'  : replicated<a name="line.122"></a>
+<span class="sourceLineNo">123</span>     *    'norep': not replicated<a name="line.123"></a>
+<span class="sourceLineNo">124</span>     */<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    setupReplication();<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>    /**<a name="line.127"></a>
+<span class="sourceLineNo">128</span>     * at Master:<a name="line.128"></a>
+<span class="sourceLineNo">129</span>     * t1_syncup: put 100 rows into cf1, and 1 rows into norep<a name="line.129"></a>
+<span class="sourceLineNo">130</span>     * t2_syncup: put 200 rows into cf1, and 1 rows into norep<a name="line.130"></a>
 <span class="sourceLineNo">131</span>     *<a name="line.131"></a>
-<span class="sourceLineNo">132</span>     * step 1: stop hbase on Slave<a name="line.132"></a>
-<span class="sourceLineNo">133</span>     *<a name="line.133"></a>
-<span class="sourceLineNo">134</span>     * step 2: at Master:<a name="line.134"></a>
-<span class="sourceLineNo">135</span>     *  t1_syncup: delete 50 rows  from cf1<a name="line.135"></a>
-<span class="sourceLineNo">136</span>     *  t2_syncup: delete 100 rows from cf1<a name="line.136"></a>
-<span class="sourceLineNo">137</span>     *  no change on 'norep'<a name="line.137"></a>
+<span class="sourceLineNo">132</span>     * verify correctly replicated to slave<a name="line.132"></a>
+<span class="sourceLineNo">133</span>     */<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    putAndReplicateRows();<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>    /**<a name="line.136"></a>
+<span class="sourceLineNo">137</span>     * Verify delete works<a name="line.137"></a>
 <span class="sourceLineNo">138</span>     *<a name="line.138"></a>
-<span class="sourceLineNo">139</span>     * step 3: stop hbase on master, restart hbase on Slave<a name="line.139"></a>
+<span class="sourceLineNo">139</span>     * step 1: stop hbase on Slave<a name="line.139"></a>
 <span class="sourceLineNo">140</span>     *<a name="line.140"></a>
-<span class="sourceLineNo">141</span>     * step 4: verify Slave still have the rows before delete<a name="line.141"></a>
-<span class="sourceLineNo">142</span>     *      t1_syncup: 100 rows from cf1<a name="line.142"></a>
-<span class="sourceLineNo">143</span>     *      t2_syncup: 200 rows from cf1<a name="line.143"></a>
-<span class="sourceLineNo">144</span>     *<a name="line.144"></a>
-<span class="sourceLineNo">145</span>     * step 5: run syncup tool on Master<a name="line.145"></a>
-<span class="sourceLineNo">146</span>     *<a name="line.146"></a>
-<span class="sourceLineNo">147</span>     * step 6: verify that delete show up on Slave<a name="line.147"></a>
-<span class="sourceLineNo">148</span>     *      t1_syncup: 50 rows from cf1<a name="line.148"></a>
-<span class="sourceLineNo">149</span>     *      t2_syncup: 100 rows from cf1<a name="line.149"></a>
-<span class="sourceLineNo">150</span>     *<a name="line.150"></a>
-<span class="sourceLineNo">151</span>     * verify correctly replicated to Slave<a name="line.151"></a>
-<span class="sourceLineNo">152</span>     */<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    mimicSyncUpAfterDelete();<a name="line.153"></a>
-<span class="sourceLineNo">154</span><a name="line.154"></a>
-<span class="sourceLineNo">155</span>    /**<a name="line.155"></a>
-<span class="sourceLineNo">156</span>     * Verify put works<a name="line.156"></a>
+<span class="sourceLineNo">141</span>     * step 2: at Master:<a name="line.141"></a>
+<span class="sourceLineNo">142</span>     *  t1_syncup: delete 50 rows  from cf1<a name="line.142"></a>
+<span class="sourceLineNo">143</span>     *  t2_syncup: delete 100 rows from cf1<a name="line.143"></a>
+<span class="sourceLineNo">144</span>     *  no change on 'norep'<a name="line.144"></a>
+<span class="sourceLineNo">145</span>     *<a name="line.145"></a>
+<span class="sourceLineNo">146</span>     * step 3: stop hbase on master, restart hbase on Slave<a name="line.146"></a>
+<span class="sourceLineNo">147</span>     *<a name="line.147"></a>
+<span class="sourceLineNo">148</span>     * step 4: verify Slave still have the rows before delete<a name="line.148"></a>
+<span class="sourceLineNo">149</span>     *      t1_syncup: 100 rows from cf1<a name="line.149"></a>
+<span class="sourceLineNo">150</span>     *      t2_syncup: 200 rows from cf1<a name="line.150"></a>
+<span class="sourceLineNo">151</span>     *<a name="line.151"></a>
+<span class="sourceLineNo">152</span>     * step 5: run syncup tool on Master<a name="line.152"></a>
+<span class="sourceLineNo">153</span>     *<a name="line.153"></a>
+<span class="sourceLineNo">154</span>     * step 6: verify that delete show up on Slave<a name="line.154"></a>
+<span class="sourceLineNo">155</span>     *      t1_syncup: 50 rows from cf1<a name="line.155"></a>
+<span class="sourceLineNo">156</span>     *      t2_syncup: 100 rows from cf1<a name="line.156"></a>
 <span class="sourceLineNo">157</span>     *<a name="line.157"></a>
-<span class="sourceLineNo">158</span>     * step 1: stop hbase on Slave<a name="line.158"></a>
-<span class="sourceLineNo">159</span>     *<a name="line.159"></a>
-<span class="sourceLineNo">160</span>     * step 2: at Master:<a name="line.160"></a>
-<span class="sourceLineNo">161</span>     *  t1_syncup: put 100 rows  from cf1<a name="line.161"></a>
-<span class="sourceLineNo">162</span>     *  t2_syncup: put 200 rows  from cf1<a name="line.162"></a>
-<span class="sourceLineNo">163</span>     *  and put another row on 'norep'<a name="line.163"></a>
-<span class="sourceLineNo">164</span>     *  ATTN: put to 'cf1' will overwrite existing rows, so end count will<a name="line.164"></a>
-<span class="sourceLineNo">165</span>     *        be 100 and 200 respectively<a name="line.165"></a>
-<span class="sourceLineNo">166</span>     *      put to 'norep' will add a new row.<a name="line.166"></a>
-<span class="sourceLineNo">167</span>     *<a name="line.167"></a>
-<span class="sourceLineNo">168</span>     * step 3: stop hbase on master, restart hbase on Slave<a name="line.168"></a>
-<span class="sourceLineNo">169</span>     *<a name="line.169"></a>
-<span class="sourceLineNo">170</span>     * step 4: verify Slave still has the rows before put<a name="line.170"></a>
-<span class="sourceLineNo">171</span>     *      t1_syncup: 50 rows from cf1<a name="line.171"></a>
-<span class="sourceLineNo">172</span>     *      t2_syncup: 100 rows from cf1<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     *<a name="line.173"></a>
-<span class="sourceLineNo">174</span>     * step 5: run syncup tool on Master<a name="line.174"></a>
-<span class="sourceLineNo">175</span>     *<a name="line.175"></a>
-<span class="sourceLineNo">176</span>     * step 6: verify that put show up on Slave<a name="line.176"></a>
-<span class="sourceLineNo">177</span>     *         and 'norep' does not<a name="line.177"></a>
-<span class="sourceLineNo">178</span>     *      t1_syncup: 100 rows from cf1<a name="line.178"></a>
-<span class="sourceLineNo">179</span>     *      t2_syncup: 200 rows from cf1<a name="line.179"></a>
+<span class="sourceLineNo">158</span>     * verify correctly replicated to Slave<a name="line.158"></a>
+<span class="sourceLineNo">159</span>     */<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    mimicSyncUpAfterDelete();<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>    /**<a name="line.162"></a>
+<span class="sourceLineNo">163</span>     * Verify put works<a name="line.163"></a>
+<span class="sourceLineNo">164</span>     *<a name="line.164"></a>
+<span class="sourceLineNo">165</span>     * step 1: stop hbase on Slave<a name="line.165"></a>
+<span class="sourceLineNo">166</span>     *<a name="line.166"></a>
+<span class="sourceLineNo">167</span>     * step 2: at Master:<a name="line.167"></a>
+<span class="sourceLineNo">168</span>     *  t1_syncup: put 100 rows  from cf1<a name="line.168"></a>
+<span class="sourceLineNo">169</span>     *  t2_syncup: put 200 rows  from cf1<a name="line.169"></a>
+<span class="sourceLineNo">170</span>     *  and put another row on 'norep'<a name="line.170"></a>
+<span class="sourceLineNo">171</span>     *  ATTN: put to 'cf1' will overwrite existing rows, so end count will<a name="line.171"></a>
+<span class="sourceLineNo">172</span>     *        be 100 and 200 respectively<a name="line.172"></a>
+<span class="sourceLineNo">173</span>     *      put to 'norep' will add a new row.<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     *<a name="line.174"></a>
+<span class="sourceLineNo">175</span>     * step 3: stop hbase on master, restart hbase on Slave<a name="line.175"></a>
+<span class="sourceLineNo">176</span>     *<a name="line.176"></a>
+<span class="sourceLineNo">177</span>     * step 4: verify Slave still has the rows before put<a name="line.177"></a>
+<span class="sourceLineNo">178</span>     *      t1_syncup: 50 rows from cf1<a name="line.178"></a>
+<span class="sourceLineNo">179</span>     *      t2_syncup: 100 rows from cf1<a name="line.179"></a>
 <span class="sourceLineNo">180</span>     *<a name="line.180"></a>
-<span class="sourceLineNo">181</span>     * verify correctly replicated to Slave<a name="line.181"></a>
-<span class="sourceLineNo">182</span>     */<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    mimicSyncUpAfterPut();<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  }<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  protected void setupReplication() throws Exception {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    ReplicationAdmin admin1 = new ReplicationAdmin(conf1);<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    ReplicationAdmin admin2 = new ReplicationAdmin(conf2);<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>    Admin ha = utility1.getAdmin();<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    ha.createTable(t1_syncupSource);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    ha.createTable(t2_syncupSource);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    ha.close();<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>    ha = utility2.getAdmin();<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    ha.createTable(t1_syncupTarget);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    ha.createTable(t2_syncupTarget);<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    ha.close();<a name="line.198"></a>
-<span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>    Connection connection1 = ConnectionFactory.createConnection(utility1.getConfiguration());<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    Connection connection2 = ConnectionFactory.createConnection(utility2.getConfiguration());<a name="line.201"></a>
-<span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>    // Get HTable from Master<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    ht1Source = connection1.getTable(t1_su);<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    ht2Source = connection1.getTable(t2_su);<a name="line.205"></a>
+<span class="sourceLineNo">181</span>     * step 5: run syncup tool on Master<a name="line.181"></a>
+<span class="sourceLineNo">182</span>     *<a name="line.182"></a>
+<span class="sourceLineNo">183</span>     * step 6: verify that put show up on Slave<a name="line.183"></a>
+<span class="sourceLineNo">184</span>     *         and 'norep' does not<a name="line.184"></a>
+<span class="sourceLineNo">185</span>     *      t1_syncup: 100 rows from cf1<a name="line.185"></a>
+<span class="sourceLineNo">186</span>     *      t2_syncup: 200 rows from cf1<a name="line.186"></a>
+<span class="sourceLineNo">187</span>     *<a name="line.187"></a>
+<span class="sourceLineNo">188</span>     * verify correctly replicated to Slave<a name="line.188"></a>
+<span class="sourceLineNo">189</span>     */<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    mimicSyncUpAfterPut();<a name="line.190"></a>
+<span class="sourceLineNo">191</span>  }<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>  protected void setupReplication() throws Exception {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    ReplicationAdmin admin1 = new ReplicationAdmin(conf1);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    ReplicationAdmin admin2 = new ReplicationAdmin(conf2);<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>    Admin ha = utility1.getAdmin();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    ha.createTable(t1_syncupSource);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    ha.createTable(t2_syncupSource);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    ha.close();<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>    ha = utility2.getAdmin();<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    ha.createTable(t1_syncupTarget);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    ha.createTable(t2_syncupTarget);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    ha.close();<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>    // Get HTable from Peer1<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    ht1TargetAtPeer1 = connection2.getTable(t1_su);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    ht2TargetAtPeer1 = connection2.getTable(t2_su);<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>    /**<a name="line.211"></a>
-<span class="sourceLineNo">212</span>     * set M-S : Master: utility1 Slave1: utility2<a name="line.212"></a>
-<span class="sourceLineNo">213</span>     */<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    rpc.setClusterKey(utility2.getClusterKey());<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    admin1.addPeer("1", rpc, null);<a name="line.216"></a>
+<span class="sourceLineNo">207</span>    Connection connection1 = ConnectionFactory.createConnection(utility1.getConfiguration());<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    Connection connection2 = ConnectionFactory.createConnection(utility2.getConfiguration());<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>    // Get HTable from Master<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    ht1Source = connection1.getTable(t1_su);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    ht2Source = connection1.getTable(t2_su);<a name="line.212"></a>
+<span class="sourceLineNo">213</span><a name="line.213"></a>
+<span class="sourceLineNo">214</span>    // Get HTable from Peer1<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    ht1TargetAtPeer1 = connection2.getTable(t1_su);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    ht2TargetAtPeer1 = connection2.getTable(t2_su);<a name="line.216"></a>
 <span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>    admin1.close();<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    admin2.close();<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  }<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span>  private void putAndReplicateRows() throws Exception {<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    LOG.debug("putAndReplicateRows");<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    // add rows to Master cluster,<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    Put p;<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>    // 100 + 1 row to t1_syncup<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH; i++) {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      p = new Put(Bytes.toBytes("row" + i));<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      ht1Source.put(p);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    }<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    p = new Put(Bytes.toBytes("row" + 9999));<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    p.addColumn(noRepfamName, qualName, Bytes.toBytes("val" + 9999));<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    ht1Source.put(p);<a name="line.235"></a>
-<span class="sourceLineNo">236</span><a name="line.236"></a>
-<span class="sourceLineNo">237</span>    // 200 + 1 row to t2_syncup<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH * 2; i++) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      p = new Put(Bytes.toBytes("row" + i));<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      ht2Source.put(p);<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    p = new Put(Bytes.toBytes("row" + 9999));<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    p.addColumn(noRepfamName, qualName, Bytes.toBytes("val" + 9999));<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    ht2Source.put(p);<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>    // ensure replication completed<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    Thread.sleep(SLEEP_TIME);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    int rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      int rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      if (i==NB_RETRIES-1) {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>        assertEquals("t1_syncup has 101 rows on source, and 100 on slave1", rowCount_ht1Source - 1,<a name="line.253"></a>
-<span class="sourceLineNo">254</span>            rowCount_ht1TargetAtPeer1);<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      }<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      if (rowCount_ht1Source - 1 == rowCount_ht1TargetAtPeer1) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>        break;<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      }<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      Thread.sleep(SLEEP_TIME);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    }<a name="line.260"></a>
-<span class="sourceLineNo">261</span><a name="line.261"></a>
-<span class="sourceLineNo">262</span>    int rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      int rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      if (i==NB_RETRIES-1) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>        assertEquals("t2_syncup has 201 rows on source, and 200 on slave1", rowCount_ht2Source - 1,<a name="line.266"></a>
-<span class="sourceLineNo">267</span>            rowCount_ht2TargetAtPeer1);<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      if (rowCount_ht2Source - 1 == rowCount_ht2TargetAtPeer1) {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>        break;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      }<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      Thread.sleep(SLEEP_TIME);<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    }<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  }<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  private void mimicSyncUpAfterDelete() throws Exception {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    LOG.debug("mimicSyncUpAfterDelete");<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    utility2.shutdownMiniHBaseCluster();<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>    List&lt;Delete&gt; list = new ArrayList&lt;&gt;();<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    // delete half of the rows<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH / 2; i++) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>      String rowKey = "row" + i;<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      Delete del = new Delete(Bytes.toBytes(rowKey));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      list.add(del);<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    }<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    ht1Source.delete(list);<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH; i++) {<a name="line.289"></a>
+<span class="sourceLineNo">218</span>    /**<a name="line.218"></a>
+<span class="sourceLineNo">219</span>     * set M-S : Master: utility1 Slave1: utility2<a name="line.219"></a>
+<span class="sourceLineNo">220</span>     */<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    rpc.setClusterKey(utility2.getClusterKey());<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    admin1.addPeer("1", rpc, null);<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>    admin1.close();<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    admin2.close();<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  }<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>  private void putAndReplicateRows() throws Exception {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    LOG.debug("putAndReplicateRows");<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    // add rows to Master cluster,<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    Put p;<a name="line.232"></a>
+<span class="sourceLineNo">233</span><a name="line.233"></a>
+<span class="sourceLineNo">234</span>    // 100 + 1 row to t1_syncup<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH; i++) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      p = new Put(Bytes.toBytes("row" + i));<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      ht1Source.put(p);<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    }<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    p = new Put(Bytes.toBytes("row" + 9999));<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    p.addColumn(noRepfamName, qualName, Bytes.toBytes("val" + 9999));<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    ht1Source.put(p);<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span>    // 200 + 1 row to t2_syncup<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH * 2; i++) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      p = new Put(Bytes.toBytes("row" + i));<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      ht2Source.put(p);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    }<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    p = new Put(Bytes.toBytes("row" + 9999));<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    p.addColumn(noRepfamName, qualName, Bytes.toBytes("val" + 9999));<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    ht2Source.put(p);<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>    // ensure replication completed<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    Thread.sleep(SLEEP_TIME);<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    int rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      int rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      if (i==NB_RETRIES-1) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        assertEquals("t1_syncup has 101 rows on source, and 100 on slave1", rowCount_ht1Source - 1,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>            rowCount_ht1TargetAtPeer1);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      if (rowCount_ht1Source - 1 == rowCount_ht1TargetAtPeer1) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        break;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>      }<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      Thread.sleep(SLEEP_TIME);<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    }<a name="line.267"></a>
+<span class="sourceLineNo">268</span><a name="line.268"></a>
+<span class="sourceLineNo">269</span>    int rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      int rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      if (i==NB_RETRIES-1) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>        assertEquals("t2_syncup has 201 rows on source, and 200 on slave1", rowCount_ht2Source - 1,<a name="line.273"></a>
+<span class="sourceLineNo">274</span>            rowCount_ht2TargetAtPeer1);<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      if (rowCount_ht2Source - 1 == rowCount_ht2TargetAtPeer1) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        break;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      }<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      Thread.sleep(SLEEP_TIME);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    }<a name="line.280"></a>
+<span class="sourceLineNo">281</span>  }<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>  private void mimicSyncUpAfterDelete() throws Exception {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    LOG.debug("mimicSyncUpAfterDelete");<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    utility2.shutdownMiniHBaseCluster();<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span>    List&lt;Delete&gt; list = new ArrayList&lt;&gt;();<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    // delete half of the rows<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH / 2; i++) {<a name="line.289"></a>
 <span class="sourceLineNo">290</span>      String rowKey = "row" + i;<a name="line.290"></a>
 <span class="sourceLineNo">291</span>      Delete del = new Delete(Bytes.toBytes(rowKey));<a name="line.291"></a>
 <span class="sourceLineNo">292</span>      list.add(del);<a name="line.292"></a>
 <span class="sourceLineNo">293</span>    }<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    ht2Source.delete(list);<a name="line.294"></a>
+<span class="sourceLineNo">294</span>    ht1Source.delete(list);<a name="line.294"></a>
 <span class="sourceLineNo">295</span><a name="line.295"></a>
-<span class="sourceLineNo">296</span>    int rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    assertEquals("t1_syncup has 51 rows on source, after remove 50 of the replicated colfam", 51,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      rowCount_ht1Source);<a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>    int rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    assertEquals("t2_syncup has 101 rows on source, after remove 100 of the replicated colfam",<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      101, rowCount_ht2Source);<a name="line.302"></a>
-<span class="sourceLineNo">303</span><a name="line.303"></a>
-<span class="sourceLineNo">304</span>    utility1.shutdownMiniHBaseCluster();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    utility2.restartHBaseCluster(1);<a name="line.305"></a>
+<span class="sourceLineNo">296</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH; i++) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>      String rowKey = "row" + i;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      Delete del = new Delete(Bytes.toBytes(rowKey));<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      list.add(del);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    }<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    ht2Source.delete(list);<a name="line.301"></a>
+<span class="sourceLineNo">302</span><a name="line.302"></a>
+<span class="sourceLineNo">303</span>    int rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    assertEquals("t1_syncup has 51 rows on source, after remove 50 of the replicated colfam", 51,<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      rowCount_ht1Source);<a name="line.305"></a>
 <span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>    Thread.sleep(SLEEP_TIME);<a name="line.307"></a>
-<span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span>    // before sync up<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    int rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    int rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    assertEquals("@Peer1 t1_syncup should still have 100 rows", 100, rowCount_ht1TargetAtPeer1);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    assertEquals("@Peer1 t2_syncup should still have 200 rows", 200, rowCount_ht2TargetAtPeer1);<a name="line.313"></a>
-<span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span>    // After sync up<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      syncUp(utility1);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>      if (i == NB_RETRIES - 1) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>        if (rowCount_ht1TargetAtPeer1 != 50 || rowCount_ht2TargetAtPeer1 != 100) {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>          // syncUP still failed. Let's look at the source in case anything wrong there<a name="line.322"></a>
-<span class="sourceLineNo">323</span>          utility1.restartHBaseCluster(1);<a name="line.323"></a>
-<span class="sourceLineNo">324</span>          rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>          LOG.debug("t1_syncup should have 51 rows at source, and it is " + rowCount_ht1Source);<a name="line.325"></a>
-<span class="sourceLineNo">326</span>          rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>          LOG.debug("t2_syncup should have 101 rows at source, and it is " + rowCount_ht2Source);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>        }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>        assertEquals("@Peer1 t1_syncup should be sync up and have 50 rows", 50,<a name="line.329"></a>
-<span class="sourceLineNo">330</span>          rowCount_ht1TargetAtPeer1);<a name="line.330"></a>
-<span class="sourceLineNo">331</span>        assertEquals("@Peer1 t2_syncup should be sync up and have 100 rows", 100,<a name="line.331"></a>
-<span class="sourceLineNo">332</span>          rowCount_ht2TargetAtPeer1);<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      }<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      if (rowCount_ht1TargetAtPeer1 == 50 &amp;&amp; rowCount_ht2TargetAtPeer1 == 100) {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        LOG.info("SyncUpAfterDelete succeeded at retry = " + i);<a name="line.335"></a>
-<span class="sourceLineNo">336</span>        break;<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      } else {<a name="line.337"></a>
-<span class="sourceLineNo">338</span>        LOG.debug("SyncUpAfterDelete failed at retry = " + i + ", with rowCount_ht1TargetPeer1 ="<a name="line.338"></a>
-<span class="sourceLineNo">339</span>            + rowCount_ht1TargetAtPeer1 + " and rowCount_ht2TargetAtPeer1 ="<a name="line.339"></a>
-<span class="sourceLineNo">340</span>            + rowCount_ht2TargetAtPeer1);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      }<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      Thread.sleep(SLEEP_TIME);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    }<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  }<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  private void mimicSyncUpAfterPut() throws Exception {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    LOG.debug("mimicSyncUpAfterPut");<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    utility1.restartHBaseCluster(1);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    utility2.shutdownMiniHBaseCluster();<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>    Put p;<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    // another 100 + 1 row to t1_syncup<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    // we should see 100 + 2 rows now<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH; i++) {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      p = new Put(Bytes.toBytes("row" + i));<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      ht1Source.put(p);<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    }<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    p = new Put(Bytes.toBytes("row" + 9998));<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    p.addColumn(noRepfamName, qualName, Bytes.toBytes("val" + 9998));<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    ht1Source.put(p);<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span>    // another 200 + 1 row to t1_syncup<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    // we should see 200 + 2 rows now<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH * 2; i++) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      p = new Put(Bytes.toBytes("row" + i));<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      ht2Source.put(p);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    p = new Put(Bytes.toBytes("row" + 9998));<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    p.addColumn(noRepfamName, qualName, Bytes.toBytes("val" + 9998));<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    ht2Source.put(p);<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>    int rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    assertEquals("t1_syncup has 102 rows on source", 102, rowCount_ht1Source);<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    int rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    assertEquals("t2_syncup has 202 rows on source", 202, rowCount_ht2Source);<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>    utility1.shutdownMiniHBaseCluster();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    utility2.restartHBaseCluster(1);<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>    Thread.sleep(SLEEP_TIME);<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>    // before sync up<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    int rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    int rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    assertEquals("@Peer1 t1_syncup should be NOT sync up and have 50 rows", 50,<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      rowCount_ht1TargetAtPeer1);<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    assertEquals("@Peer1 t2_syncup should be NOT sync up and have 100 rows", 100,<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      rowCount_ht2TargetAtPeer1);<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span>    // after syun up<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      syncUp(utility1);<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      if (i == NB_RETRIES - 1) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        if (rowCount_ht1TargetAtPeer1 != 100 || rowCount_ht2TargetAtPeer1 != 200) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>          // syncUP still failed. Let's look at the source in case anything wrong there<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          utility1.restartHBaseCluster(1);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          LOG.debug("t1_syncup should have 102 rows at source, and it is " + rowCount_ht1Source);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          LOG.debug("t2_syncup should have 202 rows at source, and it is " + rowCount_ht2Source);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>        }<a name="line.405"></a>
-<span class="sourceLineNo">406</span>        assertEquals("@Peer1 t1_syncup should be sync up and have 100 rows", 100,<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          rowCount_ht1TargetAtPeer1);<a name="line.407"></a>
-<span class="sourceLineNo">408</span>        assertEquals("@Peer1 t2_syncup should be sync up and have 200 rows", 200,<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          rowCount_ht2TargetAtPeer1);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>      }<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      if (rowCount_ht1TargetAtPeer1 == 100 &amp;&amp; rowCount_ht2TargetAtPeer1 == 200) {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>        LOG.info("SyncUpAfterPut succeeded at retry = " + i);<a name="line.412"></a>
-<span class="sourceLineNo">413</span>        break;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      } else {<a name="line.414"></a>
-<span class="sourceLineNo">415</span>        LOG.debug("SyncUpAfterPut failed at retry = " + i + ", with rowCount_ht1TargetPeer1 ="<a name="line.415"></a>
-<span class="sourceLineNo">416</span>            + rowCount_ht1TargetAtPeer1 + " and rowCount_ht2TargetAtPeer1 ="<a name="line.416"></a>
-<span class="sourceLineNo">417</span>            + rowCount_ht2TargetAtPeer1);<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      }<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      Thread.sleep(SLEEP_TIME);<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    }<a name="line.420"></a>
-<span class="sourceLineNo">421</span>  }<a name="line.421"></a>
-<span class="sourceLineNo">422</span><a name="line.422"></a>
-<span class="sourceLineNo">423</span>  protected void syncUp(HBaseTestingUtility ut) throws Exception {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    ToolRunner.run(ut.getConfiguration(), new ReplicationSyncUp(), new String[0]);<a name="line.424"></a>
-<span class="sourceLineNo">425</span>  }<a name="line.425"></a>
-<span class="sourceLineNo">426</span>}<a name="line.426"></a>
+<span class="sourceLineNo">307</span>    int rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    assertEquals("t2_syncup has 101 rows on source, after remove 100 of the replicated colfam",<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      101, rowCount_ht2Source);<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>    utility1.shutdownMiniHBaseCluster();<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    utility2.restartHBaseCluster(1);<a name="line.312"></a>
+<span class="sourceLineNo">313</span><a name="line.313"></a>
+<span class="sourceLineNo">314</span>    Thread.sleep(SLEEP_TIME);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>    // before sync up<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    int rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    int rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    assertEquals("@Peer1 t1_syncup should still have 100 rows", 100, rowCount_ht1TargetAtPeer1);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    assertEquals("@Peer1 t2_syncup should still have 200 rows", 200, rowCount_ht2TargetAtPeer1);<a name="line.320"></a>
+<span class="sourceLineNo">321</span><a name="line.321"></a>
+<span class="sourceLineNo">322</span>    // After sync up<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      syncUp(utility1);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      if (i == NB_RETRIES - 1) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        if (rowCount_ht1TargetAtPeer1 != 50 || rowCount_ht2TargetAtPeer1 != 100) {<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          // syncUP still failed. Let's look at the source in case anything wrong there<a name="line.329"></a>
+<span class="sourceLineNo">330</span>          utility1.restartHBaseCluster(1);<a name="line.330"></a>
+<span class="sourceLineNo">331</span>          rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>          LOG.debug("t1_syncup should have 51 rows at source, and it is " + rowCount_ht1Source);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>          rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>          LOG.debug("t2_syncup should have 101 rows at source, and it is " + rowCount_ht2Source);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        assertEquals("@Peer1 t1_syncup should be sync up and have 50 rows", 50,<a name="line.336"></a>
+<span class="sourceLineNo">337</span>          rowCount_ht1TargetAtPeer1);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        assertEquals("@Peer1 t2_syncup should be sync up and have 100 rows", 100,<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          rowCount_ht2TargetAtPeer1);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      }<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      if (rowCount_ht1TargetAtPeer1 == 50 &amp;&amp; rowCount_ht2TargetAtPeer1 == 100) {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        LOG.info("SyncUpAfterDelete succeeded at retry = " + i);<a name="line.342"></a>
+<span class="sourceLineNo">343</span>        break;<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      } else {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        LOG.debug("SyncUpAfterDelete failed at retry = " + i + ", with rowCount_ht1TargetPeer1 ="<a name="line.345"></a>
+<span class="sourceLineNo">346</span>            + rowCount_ht1TargetAtPeer1 + " and rowCount_ht2TargetAtPeer1 ="<a name="line.346"></a>
+<span class="sourceLineNo">347</span>            + rowCount_ht2TargetAtPeer1);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      }<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      Thread.sleep(SLEEP_TIME);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    }<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  }<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>  private void mimicSyncUpAfterPut() throws Exception {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    LOG.debug("mimicSyncUpAfterPut");<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    utility1.restartHBaseCluster(1);<a name="line.355"></a>
+<span class="sourceLineNo">356</span>    utility2.shutdownMiniHBaseCluster();<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span>    Put p;<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    // another 100 + 1 row to t1_syncup<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    // we should see 100 + 2 rows now<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH; i++) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>      p = new Put(Bytes.toBytes("row" + i));<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      ht1Source.put(p);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    }<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    p = new Put(Bytes.toBytes("row" + 9998));<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    p.addColumn(noRepfamName, qualName, Bytes.toBytes("val" + 9998));<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    ht1Source.put(p);<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span>    // another 200 + 1 row to t1_syncup<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    // we should see 200 + 2 rows now<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    for (int i = 0; i &lt; NB_ROWS_IN_BATCH * 2; i++) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      p = new Put(Bytes.toBytes("row" + i));<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      p.addColumn(famName, qualName, Bytes.toBytes("val" + i));<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      ht2Source.put(p);<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    }<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    p = new Put(Bytes.toBytes("row" + 9998));<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    p.addColumn(noRepfamName, qualName, Bytes.toBytes("val" + 9998));<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    ht2Source.put(p);<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span>    int rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    assertEquals("t1_syncup has 102 rows on source", 102, rowCount_ht1Source);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    int rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    assertEquals("t2_syncup has 202 rows on source", 202, rowCount_ht2Source);<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>    utility1.shutdownMiniHBaseCluster();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    utility2.restartHBaseCluster(1);<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span>    Thread.sleep(SLEEP_TIME);<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>    // before sync up<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    int rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    int rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    assertEquals("@Peer1 t1_syncup should be NOT sync up and have 50 rows", 50,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>      rowCount_ht1TargetAtPeer1);<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    assertEquals("@Peer1 t2_syncup should be NOT sync up and have 100 rows", 100,<a name="line.396"></a>
+<span class="sourceLineNo">397</span>      rowCount_ht2TargetAtPeer1);<a name="line.397"></a>
+<span class="sourceLineNo">398</span><a name="line.398"></a>
+<span class="sourceLineNo">399</span>    // after syun up<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      syncUp(utility1);<a name="line.401"></a>
+<span class="sourceLineNo">402</span>      rowCount_ht1TargetAtPeer1 = utility2.countRows(ht1TargetAtPeer1);<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      rowCount_ht2TargetAtPeer1 = utility2.countRows(ht2TargetAtPeer1);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      if (i == NB_RETRIES - 1) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        if (rowCount_ht1TargetAtPeer1 != 100 || rowCount_ht2TargetAtPeer1 != 200) {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>          // syncUP still failed. Let's look at the source in case anything wrong there<a name="line.406"></a>
+<span class="sourceLineNo">407</span>          utility1.restartHBaseCluster(1);<a name="line.407"></a>
+<span class="sourceLineNo">408</span>          rowCount_ht1Source = utility1.countRows(ht1Source);<a name="line.408"></a>
+<span class="sourceLineNo">409</span>          LOG.debug("t1_syncup should have 102 rows at source, and it is " + rowCount_ht1Source);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>          rowCount_ht2Source = utility1.countRows(ht2Source);<a name="line.410"></a>
+<span class="sourceLineNo">411</span>          LOG.debug("t2_syncup should have 202 rows at source, and it is " + rowCount_ht2Source);<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        }<a name="line.412"></a>
+<span class="sourceLineNo">413</span>        assertEquals("@Peer1 t1_syncup should be sync up and have 100 rows", 100,<a name="line.413"></a>
+<span class="sourceLineNo">414</span>          rowCount_ht1TargetAtPeer1);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>        assertEquals("@Peer1 t2_syncup should be sync up and have 200 rows", 200,<a name="line.415"></a>
+<span class="sourceLineNo">416</span>          rowCount_ht2TargetAtPeer1);<a name="line.416"></a>
+<span class="sourceLineNo">417</span>      }<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      if (rowCount_ht1TargetAtPeer1 == 100 &amp;&amp; rowCount_ht2TargetAtPeer1 == 200) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        LOG.info("SyncUpAfterPut succeeded at retry = " + i);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>        break;<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      } else {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        LOG.debug("SyncUpAfterPut failed at retry = " + i + ", with rowCount_ht1TargetPeer1 ="<a name="line.422"></a>
+<span class="sourceLineNo">423</span>            + rowCount_ht1TargetAtPeer1 + " and rowCount_ht2TargetAtPeer1 ="<a name="line.423"></a>
+<span class="sourceLineNo">424</span>            + rowCount_ht2TargetAtPeer1);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      }<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      Thread.sleep(SLEEP_TIME);<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    }<a name="line.427"></a>
+<span class="sourceLineNo">428</span>  }<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>  protected void syncUp(HBaseTestingUtility ut) throws Exception {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    ToolRunner.run(ut.getConfiguration(), new ReplicationSyncUp(), new String[0]);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>  }<a name="line.432"></a>
+<span class="sourceLineNo">433</span>}<a name="line.433"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html
index 4ac2a98..a1a3896 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSHDFSUtils.IsFileClosedDistributedFileSystem.html
@@ -160,30 +160,32 @@
 <span class="sourceLineNo">152</span>  public void testIsSameHdfs() throws IOException {<a name="line.152"></a>
 <span class="sourceLineNo">153</span>    String hadoopVersion = org.apache.hadoop.util.VersionInfo.getVersion();<a name="line.153"></a>
 <span class="sourceLineNo">154</span>    LOG.info("hadoop version is: "  + hadoopVersion);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    boolean isHadoop3 = hadoopVersion.startsWith("3.");<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    if (isHadoop3) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      // Hadoop 3.0.0 alpha1+ change default nn port to 9820. See HDFS-9427<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      testIsSameHdfs(9820);<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    } else {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      // pre hadoop 3.0.0 defaults to port 8020<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      testIsSameHdfs(8020);<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  }<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>  /**<a name="line.165"></a>
-<span class="sourceLineNo">166</span>   * Version of DFS that has HDFS-4525 in it.<a name="line.166"></a>
-<span class="sourceLineNo">167</span>   */<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  static class IsFileClosedDistributedFileSystem extends DistributedFileSystem {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    /**<a name="line.169"></a>
-<span class="sourceLineNo">170</span>     * Close status of a file. Copied over from HDFS-4525<a name="line.170"></a>
-<span class="sourceLineNo">171</span>     * @return true if file is already closed<a name="line.171"></a>
-<span class="sourceLineNo">172</span>     **/<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    @Override<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    public boolean isFileClosed(Path f) throws IOException{<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      return false;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    }<a name="line.176"></a>
-<span class="sourceLineNo">177</span>  }<a name="line.177"></a>
-<span class="sourceLineNo">178</span>}<a name="line.178"></a>
+<span class="sourceLineNo">155</span>    boolean isHadoop3_0_0 = hadoopVersion.startsWith("3.0.0");<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    if (isHadoop3_0_0) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      // Hadoop 3.0.0 alpha1+ ~ 3.0.0 GA changed default nn port to 9820.<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      // See HDFS-9427<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      testIsSameHdfs(9820);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    } else {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      // pre hadoop 3.0.0 defaults to port 8020<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      // Hadoop 3.0.1 changed it back to port 8020. See HDFS-12990<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      testIsSameHdfs(8020);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>  /**<a name="line.167"></a>
+<span class="sourceLineNo">168</span>   * Version of DFS that has HDFS-4525 in it.<a name="line.168"></a>
+<span class="sourceLineNo">169</span>   */<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  static class IsFileClosedDistributedFileSystem extends DistributedFileSystem {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    /**<a name="line.171"></a>
+<span class="sourceLineNo">172</span>     * Close status of a file. Copied over from HDFS-4525<a name="line.172"></a>
+<span class="sourceLineNo">173</span>     * @return true if file is already closed<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     **/<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    public boolean isFileClosed(Path f) throws IOException{<a name="line.176"></a>
+<span class="sourceLineNo">177</span>      return false;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    }<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>}<a name="line.180"></a>
 
 
 


[28/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html
index 24baa0b..e842bff 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html
@@ -103,93 +103,47 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">DefaultOperationQuota.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html#checkQuota-int-int-int-">checkQuota</a></span>(int&nbsp;numWrites,
-          int&nbsp;numReads,
-          int&nbsp;numScans)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">OperationQuota.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html#checkQuota-int-int-int-">checkQuota</a></span>(int&nbsp;numWrites,
-          int&nbsp;numReads,
-          int&nbsp;numScans)</code>
-<div class="block">Checks if it is possible to execute the specified operation.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">NoopOperationQuota.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/NoopOperationQuota.html#checkQuota-int-int-int-">checkQuota</a></span>(int&nbsp;numWrites,
-          int&nbsp;numReads,
-          int&nbsp;numScans)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">TimeBasedLimiter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#checkQuota-long-long-">checkQuota</a></span>(long&nbsp;writeSize,
-          long&nbsp;readSize)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">QuotaLimiter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-">checkQuota</a></span>(long&nbsp;estimateWriteSize,
-          long&nbsp;estimateReadSize)</code>
-<div class="block">Checks if it is possible to execute the specified operation.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">NoopQuotaLimiter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#checkQuota-long-long-">checkQuota</a></span>(long&nbsp;estimateWriteSize,
-          long&nbsp;estimateReadSize)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RegionServerRpcQuotaManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html#checkQuota-org.apache.hadoop.hbase.regionserver.Region-int-int-int-">checkQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;region,
-          int&nbsp;numWrites,
-          int&nbsp;numReads,
-          int&nbsp;numScans)</code>
-<div class="block">Check the quota for the current (rpc-context) user.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RegionServerRpcQuotaManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html#checkQuota-org.apache.hadoop.hbase.regionserver.Region-java.util.List-">checkQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;region,
-          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.Action&gt;&nbsp;actions)</code>
-<div class="block">Check the quota for the current (rpc-context) user.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a></code></td>
-<td class="colLast"><span class="typeNameLabel">RegionServerRpcQuotaManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html#checkQuota-org.apache.hadoop.hbase.regionserver.Region-org.apache.hadoop.hbase.quotas.OperationQuota.OperationType-">checkQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;region,
-          <a href="../../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas">OperationQuota.OperationType</a>&nbsp;type)</code>
-<div class="block">Check the quota for the current (rpc-context) user.</div>
-</td>
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>private static void</code></td>
 <td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwThrottlingException-org.apache.hadoop.hbase.quotas.ThrottlingException.Type-long-">throwThrottlingException</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;type,
-                        long&nbsp;waitInterval)</code>&nbsp;</td>
+                        long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 </tbody>
 </table>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/package-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-frame.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-frame.html
index 9fcb45b..e15595d 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-frame.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-frame.html
@@ -89,6 +89,7 @@
 <li><a href="OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">OperationQuota.OperationType</a></li>
 <li><a href="QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">QuotaScope</a></li>
 <li><a href="QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">QuotaType</a></li>
+<li><a href="RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">RpcThrottlingException.Type</a></li>
 <li><a href="SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">SpaceViolationPolicy</a></li>
 <li><a href="ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">ThrottleType</a></li>
 <li><a href="ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">ThrottlingException.Type</a></li>
@@ -97,6 +98,7 @@
 <ul title="Exceptions">
 <li><a href="FileArchiverNotifierImpl.QuotaSnapshotSizeSerializationException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">FileArchiverNotifierImpl.QuotaSnapshotSizeSerializationException</a></li>
 <li><a href="QuotaExceededException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">QuotaExceededException</a></li>
+<li><a href="RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">RpcThrottlingException</a></li>
 <li><a href="SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">SpaceLimitingException</a></li>
 <li><a href="ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">ThrottlingException</a></li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/package-summary.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-summary.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-summary.html
index d6d3cc1..f6308f3 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-summary.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-summary.html
@@ -507,18 +507,22 @@
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a></td>
 <td class="colLast">
 <div class="block">Enumeration that represents the action HBase will take when a space quota is violated.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottleType</a></td>
 <td class="colLast">
 <div class="block">Describe the Throttle Type.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
@@ -546,15 +550,21 @@
 </td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></td>
+<td class="colLast">
+<div class="block">Describe the throttling result.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas">SpaceLimitingException</a></td>
 <td class="colLast">
 <div class="block">An Exception that is thrown when a space quota is in violation.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></td>
-<td class="colLast">
-<div class="block">Describe the throttling result.</div>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
 </td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
index 65a2ef4..4b5274d 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -171,6 +171,7 @@
 </li>
 </ul>
 </li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException</span></a></li>
 </ul>
 </li>
 </ul>
@@ -228,11 +229,12 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/quotas/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-use.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-use.html
index 6dde91a..fd2ed5c 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-use.html
@@ -437,6 +437,14 @@
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html#org.apache.hadoop.hbase.quotas">RpcThrottlingException</a>
+<div class="block">Describe the throttling result.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html#org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/SpaceLimitingException.html#org.apache.hadoop.hbase.quotas">SpaceLimitingException</a>
 <div class="block">An Exception that is thrown when a space quota is in violation.</div>
 </td>
@@ -498,11 +506,15 @@
 </tr>
 <tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html#org.apache.hadoop.hbase.quotas">ThrottlingException</a>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html#org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html#org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/TimeBasedLimiter.html#org.apache.hadoop.hbase.quotas">TimeBasedLimiter</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index c6caf11..8a9d4c2 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -704,20 +704,20 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
index 858ccf6..b377318 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -130,9 +130,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
index 5a7e325..d9fa142 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -137,9 +137,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
index 8e41b8e..41c2191 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
@@ -198,9 +198,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftServerRunner.ImplType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftServerRunner.ImplType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
index debc4a7..90aa9ce 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -532,14 +532,14 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HBaseFsck.ErrorReporter.ERROR_CODE</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HBaseFsck.ErrorReporter.ERROR_CODE</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/overview-tree.html b/devapidocs/overview-tree.html
index 9c4a44f..5e84ab8 100644
--- a/devapidocs/overview-tree.html
+++ b/devapidocs/overview-tree.html
@@ -3903,6 +3903,7 @@
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RegionOfflineException.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionOfflineException</span></a></li>
 </ul>
 </li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/ServerCrashException.html" title="class in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerCrashException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServiceNotRunningException.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">ServiceNotRunningException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/StoppedRpcClientException.html" title="class in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">StoppedRpcClientException</span></a></li>
@@ -5182,6 +5183,7 @@
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/serialized-form.html
----------------------------------------------------------------------
diff --git a/devapidocs/serialized-form.html b/devapidocs/serialized-form.html
index fd1c018..d29bc1a 100644
--- a/devapidocs/serialized-form.html
+++ b/devapidocs/serialized-form.html
@@ -1383,6 +1383,26 @@
 </a>
 <h3>Class <a href="org/apache/hadoop/hbase/quotas/QuotaExceededException.html" title="class in org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas.QuotaExceededException</a> extends <a href="org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a> implements Serializable</h3>
 </li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.quotas.RpcThrottlingException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas.RpcThrottlingException</a> extends <a href="org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a> implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>waitInterval</h4>
+<pre>long waitInterval</pre>
+</li>
+<li class="blockListLast">
+<h4>type</h4>
+<pre><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> type</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.quotas.SpaceLimitingException">
 <!--   -->
 </a>
@@ -1418,10 +1438,12 @@
 <li class="blockList">
 <h4>waitInterval</h4>
 <pre>long waitInterval</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 <li class="blockListLast">
 <h4>type</h4>
 <pre><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> type</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
index bb27134..da85657 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -16,11 +16,11 @@
 <span class="sourceLineNo">008</span>@InterfaceAudience.Private<a name="line.8"></a>
 <span class="sourceLineNo">009</span>public class Version {<a name="line.9"></a>
 <span class="sourceLineNo">010</span>  public static final String version = "3.0.0-SNAPSHOT";<a name="line.10"></a>
-<span class="sourceLineNo">011</span>  public static final String revision = "773aff90fdf9edf4687b373d1c7ba859d166a437";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "42d5447cfbc593becfc26684e03f482eb3a0fc49";<a name="line.11"></a>
 <span class="sourceLineNo">012</span>  public static final String user = "jenkins";<a name="line.12"></a>
-<span class="sourceLineNo">013</span>  public static final String date = "Mon Apr 16 14:39:11 UTC 2018";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Tue Apr 17 14:39:15 UTC 2018";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://jenkins-websites1.apache.org/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String srcChecksum = "83e5500271237f8b8d44991e5fb13ecd";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "7216e99e4e2f243f8ca1e9d09be1a120";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html b/devapidocs/src-html/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html
index 5895455..412e95e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.html
@@ -47,7 +47,7 @@
 <span class="sourceLineNo">039</span>import org.apache.yetus.audience.InterfaceStability;<a name="line.39"></a>
 <span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.ipc.CallTimeoutException;<a name="line.40"></a>
 <span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.ipc.FailedServerException;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.quotas.ThrottlingException;<a name="line.42"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.quotas.RpcThrottlingException;<a name="line.42"></a>
 <span class="sourceLineNo">043</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.43"></a>
 <span class="sourceLineNo">044</span><a name="line.44"></a>
 <span class="sourceLineNo">045</span>@InterfaceAudience.Private<a name="line.45"></a>
@@ -68,7 +68,7 @@
 <span class="sourceLineNo">060</span><a name="line.60"></a>
 <span class="sourceLineNo">061</span>  public static boolean isSpecialException(Throwable cur) {<a name="line.61"></a>
 <span class="sourceLineNo">062</span>    return (cur instanceof RegionMovedException || cur instanceof RegionOpeningException<a name="line.62"></a>
-<span class="sourceLineNo">063</span>        || cur instanceof RegionTooBusyException || cur instanceof ThrottlingException<a name="line.63"></a>
+<span class="sourceLineNo">063</span>        || cur instanceof RegionTooBusyException || cur instanceof RpcThrottlingException<a name="line.63"></a>
 <span class="sourceLineNo">064</span>        || cur instanceof MultiActionResultTooLarge || cur instanceof RetryImmediatelyException<a name="line.64"></a>
 <span class="sourceLineNo">065</span>        || cur instanceof CallQueueTooBigException || cur instanceof CallDroppedException<a name="line.65"></a>
 <span class="sourceLineNo">066</span>        || cur instanceof NotServingRegionException || cur instanceof RequestTooBigException);<a name="line.66"></a>
@@ -81,7 +81,7 @@
 <span class="sourceLineNo">073</span>   * - nested exceptions<a name="line.73"></a>
 <span class="sourceLineNo">074</span>   *<a name="line.74"></a>
 <span class="sourceLineNo">075</span>   * Looks for: RegionMovedException / RegionOpeningException / RegionTooBusyException /<a name="line.75"></a>
-<span class="sourceLineNo">076</span>   *            ThrottlingException<a name="line.76"></a>
+<span class="sourceLineNo">076</span>   *            RpcThrottlingException<a name="line.76"></a>
 <span class="sourceLineNo">077</span>   * @return null if we didn't find the exception, the exception otherwise.<a name="line.77"></a>
 <span class="sourceLineNo">078</span>   */<a name="line.78"></a>
 <span class="sourceLineNo">079</span>  public static Throwable findException(Object exception) {<a name="line.79"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
index a70ec7a..a9abfb0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
@@ -67,7 +67,7 @@
 <span class="sourceLineNo">059</span><a name="line.59"></a>
 <span class="sourceLineNo">060</span>  @Override<a name="line.60"></a>
 <span class="sourceLineNo">061</span>  public void checkQuota(int numWrites, int numReads, int numScans)<a name="line.61"></a>
-<span class="sourceLineNo">062</span>      throws ThrottlingException {<a name="line.62"></a>
+<span class="sourceLineNo">062</span>      throws RpcThrottlingException {<a name="line.62"></a>
 <span class="sourceLineNo">063</span>    writeConsumed = estimateConsume(OperationType.MUTATE, numWrites, 100);<a name="line.63"></a>
 <span class="sourceLineNo">064</span>    readConsumed  = estimateConsume(OperationType.GET, numReads, 100);<a name="line.64"></a>
 <span class="sourceLineNo">065</span>    readConsumed += estimateConsume(OperationType.SCAN, numScans, 1000);<a name="line.65"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html
index 34334d2..f04e7d4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopOperationQuota.html
@@ -51,7 +51,7 @@
 <span class="sourceLineNo">043</span><a name="line.43"></a>
 <span class="sourceLineNo">044</span>  @Override<a name="line.44"></a>
 <span class="sourceLineNo">045</span>  public void checkQuota(int numWrites, int numReads, int numScans)<a name="line.45"></a>
-<span class="sourceLineNo">046</span>      throws ThrottlingException {<a name="line.46"></a>
+<span class="sourceLineNo">046</span>      throws RpcThrottlingException {<a name="line.46"></a>
 <span class="sourceLineNo">047</span>    // no-op<a name="line.47"></a>
 <span class="sourceLineNo">048</span>  }<a name="line.48"></a>
 <span class="sourceLineNo">049</span><a name="line.49"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
index a461337..b7a8227 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
@@ -44,7 +44,7 @@
 <span class="sourceLineNo">036</span><a name="line.36"></a>
 <span class="sourceLineNo">037</span>  @Override<a name="line.37"></a>
 <span class="sourceLineNo">038</span>  public void checkQuota(long estimateWriteSize, long estimateReadSize)<a name="line.38"></a>
-<span class="sourceLineNo">039</span>      throws ThrottlingException {<a name="line.39"></a>
+<span class="sourceLineNo">039</span>      throws RpcThrottlingException {<a name="line.39"></a>
 <span class="sourceLineNo">040</span>    // no-op<a name="line.40"></a>
 <span class="sourceLineNo">041</span>  }<a name="line.41"></a>
 <span class="sourceLineNo">042</span><a name="line.42"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html
index 71eeff0..7aaa8a6 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html
@@ -49,38 +49,39 @@
 <span class="sourceLineNo">041</span>   * @param numWrites number of write operation that will be performed<a name="line.41"></a>
 <span class="sourceLineNo">042</span>   * @param numReads number of small-read operation that will be performed<a name="line.42"></a>
 <span class="sourceLineNo">043</span>   * @param numScans number of long-read operation that will be performed<a name="line.43"></a>
-<span class="sourceLineNo">044</span>   * @throws ThrottlingException if the operation cannot be performed<a name="line.44"></a>
-<span class="sourceLineNo">045</span>   */<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  void checkQuota(int numWrites, int numReads, int numScans)<a name="line.46"></a>
-<span class="sourceLineNo">047</span>    throws ThrottlingException;<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>  /** Cleanup method on operation completion */<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  void close();<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>  /**<a name="line.52"></a>
-<span class="sourceLineNo">053</span>   * Add a get result. This will be used to calculate the exact quota and<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   * have a better short-read average size for the next time.<a name="line.54"></a>
-<span class="sourceLineNo">055</span>   */<a name="line.55"></a>
-<span class="sourceLineNo">056</span>  void addGetResult(Result result);<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>  /**<a name="line.58"></a>
-<span class="sourceLineNo">059</span>   * Add a scan result. This will be used to calculate the exact quota and<a name="line.59"></a>
-<span class="sourceLineNo">060</span>   * have a better long-read average size for the next time.<a name="line.60"></a>
-<span class="sourceLineNo">061</span>   */<a name="line.61"></a>
-<span class="sourceLineNo">062</span>  void addScanResult(List&lt;Result&gt; results);<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>  /**<a name="line.64"></a>
-<span class="sourceLineNo">065</span>   * Add a mutation result. This will be used to calculate the exact quota and<a name="line.65"></a>
-<span class="sourceLineNo">066</span>   * have a better mutation average size for the next time.<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   */<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  void addMutation(Mutation mutation);<a name="line.68"></a>
-<span class="sourceLineNo">069</span><a name="line.69"></a>
-<span class="sourceLineNo">070</span>  /** @return the number of bytes available to read to avoid exceeding the quota */<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  long getReadAvailable();<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  /** @return the number of bytes available to write to avoid exceeding the quota */<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  long getWriteAvailable();<a name="line.74"></a>
-<span class="sourceLineNo">075</span>}<a name="line.75"></a>
+<span class="sourceLineNo">044</span>   * @throws RpcThrottlingException if the operation cannot be performed because<a name="line.44"></a>
+<span class="sourceLineNo">045</span>   *   RPC quota is exceeded.<a name="line.45"></a>
+<span class="sourceLineNo">046</span>   */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  void checkQuota(int numWrites, int numReads, int numScans)<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    throws RpcThrottlingException;<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>  /** Cleanup method on operation completion */<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  void close();<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>  /**<a name="line.53"></a>
+<span class="sourceLineNo">054</span>   * Add a get result. This will be used to calculate the exact quota and<a name="line.54"></a>
+<span class="sourceLineNo">055</span>   * have a better short-read average size for the next time.<a name="line.55"></a>
+<span class="sourceLineNo">056</span>   */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  void addGetResult(Result result);<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>  /**<a name="line.59"></a>
+<span class="sourceLineNo">060</span>   * Add a scan result. This will be used to calculate the exact quota and<a name="line.60"></a>
+<span class="sourceLineNo">061</span>   * have a better long-read average size for the next time.<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  void addScanResult(List&lt;Result&gt; results);<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>  /**<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   * Add a mutation result. This will be used to calculate the exact quota and<a name="line.66"></a>
+<span class="sourceLineNo">067</span>   * have a better mutation average size for the next time.<a name="line.67"></a>
+<span class="sourceLineNo">068</span>   */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  void addMutation(Mutation mutation);<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  /** @return the number of bytes available to read to avoid exceeding the quota */<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  long getReadAvailable();<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>  /** @return the number of bytes available to write to avoid exceeding the quota */<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  long getWriteAvailable();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>}<a name="line.76"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html
index 71eeff0..7aaa8a6 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/OperationQuota.html
@@ -49,38 +49,39 @@
 <span class="sourceLineNo">041</span>   * @param numWrites number of write operation that will be performed<a name="line.41"></a>
 <span class="sourceLineNo">042</span>   * @param numReads number of small-read operation that will be performed<a name="line.42"></a>
 <span class="sourceLineNo">043</span>   * @param numScans number of long-read operation that will be performed<a name="line.43"></a>
-<span class="sourceLineNo">044</span>   * @throws ThrottlingException if the operation cannot be performed<a name="line.44"></a>
-<span class="sourceLineNo">045</span>   */<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  void checkQuota(int numWrites, int numReads, int numScans)<a name="line.46"></a>
-<span class="sourceLineNo">047</span>    throws ThrottlingException;<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>  /** Cleanup method on operation completion */<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  void close();<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>  /**<a name="line.52"></a>
-<span class="sourceLineNo">053</span>   * Add a get result. This will be used to calculate the exact quota and<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   * have a better short-read average size for the next time.<a name="line.54"></a>
-<span class="sourceLineNo">055</span>   */<a name="line.55"></a>
-<span class="sourceLineNo">056</span>  void addGetResult(Result result);<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>  /**<a name="line.58"></a>
-<span class="sourceLineNo">059</span>   * Add a scan result. This will be used to calculate the exact quota and<a name="line.59"></a>
-<span class="sourceLineNo">060</span>   * have a better long-read average size for the next time.<a name="line.60"></a>
-<span class="sourceLineNo">061</span>   */<a name="line.61"></a>
-<span class="sourceLineNo">062</span>  void addScanResult(List&lt;Result&gt; results);<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>  /**<a name="line.64"></a>
-<span class="sourceLineNo">065</span>   * Add a mutation result. This will be used to calculate the exact quota and<a name="line.65"></a>
-<span class="sourceLineNo">066</span>   * have a better mutation average size for the next time.<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   */<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  void addMutation(Mutation mutation);<a name="line.68"></a>
-<span class="sourceLineNo">069</span><a name="line.69"></a>
-<span class="sourceLineNo">070</span>  /** @return the number of bytes available to read to avoid exceeding the quota */<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  long getReadAvailable();<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  /** @return the number of bytes available to write to avoid exceeding the quota */<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  long getWriteAvailable();<a name="line.74"></a>
-<span class="sourceLineNo">075</span>}<a name="line.75"></a>
+<span class="sourceLineNo">044</span>   * @throws RpcThrottlingException if the operation cannot be performed because<a name="line.44"></a>
+<span class="sourceLineNo">045</span>   *   RPC quota is exceeded.<a name="line.45"></a>
+<span class="sourceLineNo">046</span>   */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  void checkQuota(int numWrites, int numReads, int numScans)<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    throws RpcThrottlingException;<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>  /** Cleanup method on operation completion */<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  void close();<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>  /**<a name="line.53"></a>
+<span class="sourceLineNo">054</span>   * Add a get result. This will be used to calculate the exact quota and<a name="line.54"></a>
+<span class="sourceLineNo">055</span>   * have a better short-read average size for the next time.<a name="line.55"></a>
+<span class="sourceLineNo">056</span>   */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  void addGetResult(Result result);<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>  /**<a name="line.59"></a>
+<span class="sourceLineNo">060</span>   * Add a scan result. This will be used to calculate the exact quota and<a name="line.60"></a>
+<span class="sourceLineNo">061</span>   * have a better long-read average size for the next time.<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  void addScanResult(List&lt;Result&gt; results);<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>  /**<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   * Add a mutation result. This will be used to calculate the exact quota and<a name="line.66"></a>
+<span class="sourceLineNo">067</span>   * have a better mutation average size for the next time.<a name="line.67"></a>
+<span class="sourceLineNo">068</span>   */<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  void addMutation(Mutation mutation);<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  /** @return the number of bytes available to read to avoid exceeding the quota */<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  long getReadAvailable();<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>  /** @return the number of bytes available to write to avoid exceeding the quota */<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  long getWriteAvailable();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>}<a name="line.76"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
index 622995f..80bd305 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
@@ -41,10 +41,10 @@
 <span class="sourceLineNo">033</span>   *<a name="line.33"></a>
 <span class="sourceLineNo">034</span>   * @param estimateWriteSize the write size that will be checked against the available quota<a name="line.34"></a>
 <span class="sourceLineNo">035</span>   * @param estimateReadSize the read size that will be checked against the available quota<a name="line.35"></a>
-<span class="sourceLineNo">036</span>   * @throws ThrottlingException thrown if not enough avialable resources to perform operation.<a name="line.36"></a>
+<span class="sourceLineNo">036</span>   * @throws RpcThrottlingException thrown if not enough avialable resources to perform operation.<a name="line.36"></a>
 <span class="sourceLineNo">037</span>   */<a name="line.37"></a>
 <span class="sourceLineNo">038</span>  void checkQuota(long estimateWriteSize, long estimateReadSize)<a name="line.38"></a>
-<span class="sourceLineNo">039</span>    throws ThrottlingException;<a name="line.39"></a>
+<span class="sourceLineNo">039</span>    throws RpcThrottlingException;<a name="line.39"></a>
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>  /**<a name="line.41"></a>
 <span class="sourceLineNo">042</span>   * Removes the specified write and read amount from the quota.<a name="line.42"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html
index 5f2a433..0864582 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html
@@ -135,10 +135,10 @@
 <span class="sourceLineNo">127</span>   * @param region the region where the operation will be performed<a name="line.127"></a>
 <span class="sourceLineNo">128</span>   * @param type the operation type<a name="line.128"></a>
 <span class="sourceLineNo">129</span>   * @return the OperationQuota<a name="line.129"></a>
-<span class="sourceLineNo">130</span>   * @throws ThrottlingException if the operation cannot be executed due to quota exceeded.<a name="line.130"></a>
+<span class="sourceLineNo">130</span>   * @throws RpcThrottlingException if the operation cannot be executed due to quota exceeded.<a name="line.130"></a>
 <span class="sourceLineNo">131</span>   */<a name="line.131"></a>
 <span class="sourceLineNo">132</span>  public OperationQuota checkQuota(final Region region,<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      final OperationQuota.OperationType type) throws IOException, ThrottlingException {<a name="line.133"></a>
+<span class="sourceLineNo">133</span>      final OperationQuota.OperationType type) throws IOException, RpcThrottlingException {<a name="line.133"></a>
 <span class="sourceLineNo">134</span>    switch (type) {<a name="line.134"></a>
 <span class="sourceLineNo">135</span>      case SCAN:   return checkQuota(region, 0, 0, 1);<a name="line.135"></a>
 <span class="sourceLineNo">136</span>      case GET:    return checkQuota(region, 0, 1, 0);<a name="line.136"></a>
@@ -154,10 +154,10 @@
 <span class="sourceLineNo">146</span>   * @param region the region where the operation will be performed<a name="line.146"></a>
 <span class="sourceLineNo">147</span>   * @param actions the "multi" actions to perform<a name="line.147"></a>
 <span class="sourceLineNo">148</span>   * @return the OperationQuota<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   * @throws ThrottlingException if the operation cannot be executed due to quota exceeded.<a name="line.149"></a>
+<span class="sourceLineNo">149</span>   * @throws RpcThrottlingException if the operation cannot be executed due to quota exceeded.<a name="line.149"></a>
 <span class="sourceLineNo">150</span>   */<a name="line.150"></a>
 <span class="sourceLineNo">151</span>  public OperationQuota checkQuota(final Region region,<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      final List&lt;ClientProtos.Action&gt; actions) throws IOException, ThrottlingException {<a name="line.152"></a>
+<span class="sourceLineNo">152</span>      final List&lt;ClientProtos.Action&gt; actions) throws IOException, RpcThrottlingException {<a name="line.152"></a>
 <span class="sourceLineNo">153</span>    int numWrites = 0;<a name="line.153"></a>
 <span class="sourceLineNo">154</span>    int numReads = 0;<a name="line.154"></a>
 <span class="sourceLineNo">155</span>    for (final ClientProtos.Action action: actions) {<a name="line.155"></a>
@@ -179,11 +179,11 @@
 <span class="sourceLineNo">171</span>   * @param numReads number of short-reads to perform<a name="line.171"></a>
 <span class="sourceLineNo">172</span>   * @param numScans number of scan to perform<a name="line.172"></a>
 <span class="sourceLineNo">173</span>   * @return the OperationQuota<a name="line.173"></a>
-<span class="sourceLineNo">174</span>   * @throws ThrottlingException if the operation cannot be executed due to quota exceeded.<a name="line.174"></a>
+<span class="sourceLineNo">174</span>   * @throws RpcThrottlingException if the operation cannot be executed due to quota exceeded.<a name="line.174"></a>
 <span class="sourceLineNo">175</span>   */<a name="line.175"></a>
 <span class="sourceLineNo">176</span>  private OperationQuota checkQuota(final Region region,<a name="line.176"></a>
 <span class="sourceLineNo">177</span>      final int numWrites, final int numReads, final int numScans)<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      throws IOException, ThrottlingException {<a name="line.178"></a>
+<span class="sourceLineNo">178</span>      throws IOException, RpcThrottlingException {<a name="line.178"></a>
 <span class="sourceLineNo">179</span>    Optional&lt;User&gt; user = RpcServer.getRequestUser();<a name="line.179"></a>
 <span class="sourceLineNo">180</span>    UserGroupInformation ugi;<a name="line.180"></a>
 <span class="sourceLineNo">181</span>    if (user.isPresent()) {<a name="line.181"></a>
@@ -196,7 +196,7 @@
 <span class="sourceLineNo">188</span>    OperationQuota quota = getQuota(ugi, table);<a name="line.188"></a>
 <span class="sourceLineNo">189</span>    try {<a name="line.189"></a>
 <span class="sourceLineNo">190</span>      quota.checkQuota(numWrites, numReads, numScans);<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    } catch (ThrottlingException e) {<a name="line.191"></a>
+<span class="sourceLineNo">191</span>    } catch (RpcThrottlingException e) {<a name="line.191"></a>
 <span class="sourceLineNo">192</span>      LOG.debug("Throttling exception for user=" + ugi.getUserName() +<a name="line.192"></a>
 <span class="sourceLineNo">193</span>                " table=" + table + " numWrites=" + numWrites +<a name="line.193"></a>
 <span class="sourceLineNo">194</span>                " numReads=" + numReads + " numScans=" + numScans +<a name="line.194"></a>


[10/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html
index bee8222..7a938de 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.InterClusterReplicationEndpointForTest.FailingDummyReplicator.html
@@ -72,7 +72,7 @@
 <span class="sourceLineNo">064</span>/**<a name="line.64"></a>
 <span class="sourceLineNo">065</span> * Tests ReplicationSource and ReplicationEndpoint interactions<a name="line.65"></a>
 <span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@Category({ReplicationTests.class, MediumTests.class})<a name="line.67"></a>
+<span class="sourceLineNo">067</span>@Category({ ReplicationTests.class, MediumTests.class })<a name="line.67"></a>
 <span class="sourceLineNo">068</span>public class TestReplicationEndpoint extends TestReplicationBase {<a name="line.68"></a>
 <span class="sourceLineNo">069</span><a name="line.69"></a>
 <span class="sourceLineNo">070</span>  @ClassRule<a name="line.70"></a>
@@ -86,317 +86,317 @@
 <span class="sourceLineNo">078</span>  @BeforeClass<a name="line.78"></a>
 <span class="sourceLineNo">079</span>  public static void setUpBeforeClass() throws Exception {<a name="line.79"></a>
 <span class="sourceLineNo">080</span>    TestReplicationBase.setUpBeforeClass();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    admin.removePeer("2");<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  @AfterClass<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  public static void tearDownAfterClass() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    TestReplicationBase.tearDownAfterClass();<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    // check stop is called<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() &gt; 0);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  }<a name="line.90"></a>
-<span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>  @Before<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  public void setup() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    ReplicationEndpointForTest.contructedCount.set(0);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    ReplicationEndpointForTest.startedCount.set(0);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    ReplicationEndpointForTest.replicateCount.set(0);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    ReplicationEndpointForTest.lastEntries = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    final List&lt;RegionServerThread&gt; rsThreads =<a name="line.99"></a>
-<span class="sourceLineNo">100</span>        utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    for (RegionServerThread rs : rsThreads) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    // Wait for  all log roll to finish<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    utility1.waitFor(3000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      @Override<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      public boolean evaluate() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>        for (RegionServerThread rs : rsThreads) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span>            return false;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>          }<a name="line.111"></a>
-<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>        return true;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>      @Override<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      public String explainFailure() throws Exception {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        List&lt;String&gt; logRollInProgressRsList = new ArrayList&lt;&gt;();<a name="line.118"></a>
-<span class="sourceLineNo">119</span>        for (RegionServerThread rs : rsThreads) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>            logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.121"></a>
-<span class="sourceLineNo">122</span>          }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>        }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>        return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      }<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    });<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>  @Test<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  public void testCustomReplicationEndpoint() throws Exception {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    // test installing a custom replication endpoint other than the default one.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    admin.addPeer("testCustomReplicationEndpoint",<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.133"></a>
-<span class="sourceLineNo">134</span>            .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    // check whether the class has been constructed and started<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      public boolean evaluate() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        return ReplicationEndpointForTest.contructedCount.get() &gt;= numRegionServers;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      }<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    });<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      @Override<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      public boolean evaluate() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>        return ReplicationEndpointForTest.startedCount.get() &gt;= numRegionServers;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      }<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    });<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>    // now replicate some data.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    doPut(Bytes.toBytes("row42"));<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      public boolean evaluate() throws Exception {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      }<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    });<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>    doAssert(Bytes.toBytes("row42"));<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>    admin.removePeer("testCustomReplicationEndpoint");<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>  @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    int peerCount = admin.getPeersCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    admin.addPeer(id,<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.175"></a>
-<span class="sourceLineNo">176</span>        .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    // debug.  Peer needs to be up for the edit to make it across. This wait on<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    // peer count seems to be a hack that has us not progress till peer is up.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    if (admin.getPeersCount() &lt;= peerCount) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      Threads.sleep(100);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    // now replicate some data<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    doPut(row);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      public boolean evaluate() throws Exception {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        // only send over one edit.<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        LOG.info("count=" + count);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>        return ReplicationEndpointReturningFalse.replicated.get();<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    });<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      throw ReplicationEndpointReturningFalse.ex.get();<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>    admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.201"></a>
-<span class="sourceLineNo">202</span>  }<a name="line.202"></a>
-<span class="sourceLineNo">203</span><a name="line.203"></a>
-<span class="sourceLineNo">204</span>  @Test<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  public void testInterClusterReplication() throws Exception {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    final String id = "testInterClusterReplication";<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>    List&lt;HRegion&gt; regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    int totEdits = 0;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>    // Make sure edits are spread across regions because we do region based batching<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    // before shipping edits.<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    for(HRegion region: regions) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      RegionInfo hri = region.getRegionInfo();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      byte[] row = hri.getStartKey();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      for (int i = 0; i &lt; 100; i++) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        if (row.length &gt; 0) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>          Put put = new Put(row);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          put.addColumn(famName, row, row);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          region.put(put);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>          totEdits++;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        }<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      }<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>    admin.addPeer(id,<a name="line.226"></a>
-<span class="sourceLineNo">227</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.227"></a>
-<span class="sourceLineNo">228</span>            .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        null);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>    final int numEdits = totEdits;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      public boolean evaluate() throws Exception {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>      @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      public String explainFailure() throws Exception {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.240"></a>
-<span class="sourceLineNo">241</span>            + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>        return failure;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      }<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    });<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>    admin.removePeer("testInterClusterReplication");<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    utility1.deleteTableData(tableName);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  @Test<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.252"></a>
-<span class="sourceLineNo">253</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    //test that we can create mutliple WALFilters reflectively<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        EverythingPassesWALEntryFilter.class.getName() +<a name="line.256"></a>
-<span class="sourceLineNo">257</span>            "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    // now replicate some data.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      doPut(connection, Bytes.toBytes("row1"));<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      doPut(connection, row);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      doPut(connection, Bytes.toBytes("row2"));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      public boolean evaluate() throws Exception {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    });<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>    Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    //make sure our reflectively created filter is in the filter chain<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span>  @Test (expected=IOException.class)<a name="line.279"></a>
-<span class="sourceLineNo">280</span>  public void testWALEntryFilterAddValidation() throws Exception {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    //test that we can create mutliple WALFilters reflectively<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        "IAmNotARealWalEntryFilter");<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  }<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span>  @Test (expected=IOException.class)<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.291"></a>
-<span class="sourceLineNo">292</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    //test that we can create mutliple WALFilters reflectively<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.294"></a>
-<span class="sourceLineNo">295</span>        "IAmNotARealWalEntryFilter");<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>  }<a name="line.297"></a>
+<span class="sourceLineNo">081</span>    numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  @AfterClass<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  public static void tearDownAfterClass() throws Exception {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    TestReplicationBase.tearDownAfterClass();<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    // check stop is called<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() &gt; 0);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>  @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  public void setup() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    ReplicationEndpointForTest.contructedCount.set(0);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    ReplicationEndpointForTest.startedCount.set(0);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    ReplicationEndpointForTest.replicateCount.set(0);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    ReplicationEndpointForTest.lastEntries = null;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    final List&lt;RegionServerThread&gt; rsThreads =<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    for (RegionServerThread rs : rsThreads) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    // Wait for  all log roll to finish<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    utility1.waitFor(3000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      public boolean evaluate() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        for (RegionServerThread rs : rsThreads) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>            return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>          }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        return true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>      @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      public String explainFailure() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        List&lt;String&gt; logRollInProgressRsList = new ArrayList&lt;&gt;();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        for (RegionServerThread rs : rsThreads) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>            logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.120"></a>
+<span class="sourceLineNo">121</span>          }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    });<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>  @Test<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  public void testCustomReplicationEndpoint() throws Exception {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // test installing a custom replication endpoint other than the default one.<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    admin.addPeer("testCustomReplicationEndpoint",<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.132"></a>
+<span class="sourceLineNo">133</span>            .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>    // check whether the class has been constructed and started<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      public boolean evaluate() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        return ReplicationEndpointForTest.contructedCount.get() &gt;= numRegionServers;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    });<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      public boolean evaluate() throws Exception {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        return ReplicationEndpointForTest.startedCount.get() &gt;= numRegionServers;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    });<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    // now replicate some data.<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    doPut(Bytes.toBytes("row42"));<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      public boolean evaluate() throws Exception {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    });<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>    doAssert(Bytes.toBytes("row42"));<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>    admin.removePeer("testCustomReplicationEndpoint");<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>  @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    int peerCount = admin.getPeersCount();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    admin.addPeer(id,<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    // debug.  Peer needs to be up for the edit to make it across. This wait on<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    // peer count seems to be a hack that has us not progress till peer is up.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    if (admin.getPeersCount() &lt;= peerCount) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      Threads.sleep(100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    // now replicate some data<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    doPut(row);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      public boolean evaluate() throws Exception {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        // only send over one edit.<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        LOG.info("count=" + count);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        return ReplicationEndpointReturningFalse.replicated.get();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    });<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      throw ReplicationEndpointReturningFalse.ex.get();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    }<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>    admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  public void testInterClusterReplication() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    final String id = "testInterClusterReplication";<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>    List&lt;HRegion&gt; regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    int totEdits = 0;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>    // Make sure edits are spread across regions because we do region based batching<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    // before shipping edits.<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    for(HRegion region: regions) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      RegionInfo hri = region.getRegionInfo();<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      byte[] row = hri.getStartKey();<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      for (int i = 0; i &lt; 100; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        if (row.length &gt; 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          Put put = new Put(row);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>          put.addColumn(famName, row, row);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          region.put(put);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>          totEdits++;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>    admin.addPeer(id,<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.226"></a>
+<span class="sourceLineNo">227</span>            .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        null);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>    final int numEdits = totEdits;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      public boolean evaluate() throws Exception {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>      @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      public String explainFailure() throws Exception {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.239"></a>
+<span class="sourceLineNo">240</span>            + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        return failure;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    });<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>    admin.removePeer("testInterClusterReplication");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    utility1.deleteTableData(tableName);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>  @Test<a name="line.249"></a>
+<span class="sourceLineNo">250</span>  public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    //test that we can create mutliple WALFilters reflectively<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        EverythingPassesWALEntryFilter.class.getName() +<a name="line.255"></a>
+<span class="sourceLineNo">256</span>            "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    // now replicate some data.<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      doPut(connection, Bytes.toBytes("row1"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      doPut(connection, row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      doPut(connection, Bytes.toBytes("row2"));<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      public boolean evaluate() throws Exception {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      }<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    });<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span>    Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    //make sure our reflectively created filter is in the filter chain<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>  @Test (expected=IOException.class)<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  public void testWALEntryFilterAddValidation() throws Exception {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    //test that we can create mutliple WALFilters reflectively<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        "IAmNotARealWalEntryFilter");<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>  @Test (expected=IOException.class)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>  public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    //test that we can create mutliple WALFilters reflectively<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        "IAmNotARealWalEntryFilter");<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>  }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
 <span class="sourceLineNo">298</span><a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>  @Test<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  public void testMetricsSourceBaseSourcePassthrough(){<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    /*<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    allows for custom JMX metrics.<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    the two layers of wrapping to the actual BaseSource.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    */<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    String id = "id";<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>    MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    String gaugeName = "gauge";<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    String singleGaugeName = "source.id." + gaugeName;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    String globalGaugeName = "source." + gaugeName;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    long delta = 1;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    String counterName = "counter";<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    String singleCounterName = "source.id." + counterName;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    String globalCounterName = "source." + counterName;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    long count = 2;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    source.decGauge(gaugeName, delta);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    source.getMetricsContext();<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    source.getMetricsDescription();<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    source.getMetricsJmxContext();<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    source.getMetricsName();<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    source.incCounters(counterName, count);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    source.incGauge(gaugeName, delta);<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    source.init();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    source.removeMetric(gaugeName);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    source.setGauge(gaugeName, delta);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    source.updateHistogram(counterName, count);<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    verify(globalRms).getMetricsContext();<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    verify(globalRms).getMetricsJmxContext();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    verify(globalRms).getMetricsName();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    verify(singleRms).incCounters(singleCounterName, count);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    verify(globalRms).incCounters(globalCounterName, count);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    verify(globalRms).init();<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    verify(singleRms).removeMetric(singleGaugeName);<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    verify(globalRms).removeMetric(globalGaugeName);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    verify(globalRms).updateHistogram(globalCounterName, count);<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>  private void doPut(byte[] row) throws IOException {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      doPut(connection, row);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>  private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    try (Table t = connection.getTable(tableName)) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      Put put = new Put(row);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      put.addColumn(famName, row, row);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      t.put(put);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>  private static void doAssert(byte[] row) throws Exception {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      return; // first call<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    List&lt;Cell&gt; cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    Assert.assertEquals(1, cells.size());<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      cells.get(0).getRowLength(), row, 0, row.length));<a name="line.380"></a>
-<span class="sourceLineNo">381</span>  }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span>  public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    static UUID uuid = UUID.randomUUID();<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    static AtomicInteger contructedCount = new AtomicInteger();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    static AtomicInteger startedCount = new AtomicInteger();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    static volatile List&lt;Entry&gt; lastEntries = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>    public ReplicationEndpointForTest() {<a name="line.391"></a>
+<span class="sourceLineNo">299</span>  @Test<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  public void testMetricsSourceBaseSourcePassthrough(){<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    /*<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    allows for custom JMX metrics.<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    the two layers of wrapping to the actual BaseSource.<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    String id = "id";<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>    MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    String gaugeName = "gauge";<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    String singleGaugeName = "source.id." + gaugeName;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    String globalGaugeName = "source." + gaugeName;<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    long delta = 1;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    String counterName = "counter";<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    String singleCounterName = "source.id." + counterName;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    String globalCounterName = "source." + counterName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    long count = 2;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    source.decGauge(gaugeName, delta);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    source.getMetricsContext();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    source.getMetricsDescription();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    source.getMetricsJmxContext();<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    source.getMetricsName();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    source.incCounters(counterName, count);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    source.incGauge(gaugeName, delta);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    source.init();<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    source.removeMetric(gaugeName);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    source.setGauge(gaugeName, delta);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    source.updateHistogram(counterName, count);<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>    verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    verify(globalRms).getMetricsContext();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    verify(globalRms).getMetricsJmxContext();<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    verify(globalRms).getMetricsName();<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    verify(singleRms).incCounters(singleCounterName, count);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    verify(globalRms).incCounters(globalCounterName, count);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    verify(globalRms).init();<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    verify(singleRms).removeMetric(singleGaugeName);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    verify(globalRms).removeMetric(globalGaugeName);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    verify(globalRms).updateHistogram(globalCounterName, count);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>  private void doPut(byte[] row) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      doPut(connection, row);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>  private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    try (Table t = connection.getTable(tableName)) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      Put put = new Put(row);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      put.addColumn(famName, row, row);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      t.put(put);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>  private static void doAssert(byte[] row) throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      return; // first call<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    List&lt;Cell&gt; cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    Assert.assertEquals(1, cells.size());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      cells.get(0).getRowLength(), row, 0, row.length));<a name="line.379"></a>
+<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>  public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    static UUID uuid = UUID.randomUUID();<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    static AtomicInteger contructedCount = new AtomicInteger();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    static AtomicInteger startedCount = new AtomicInteger();<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    static volatile List&lt;Entry&gt; lastEntries = null;<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>    public ReplicationEndpointForTest() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      replicateCount.set(0);<a name="line.391"></a>
 <span class="sourceLineNo">392</span>      contructedCount.incrementAndGet();<a name="line.392"></a>
 <span class="sourceLineNo">393</span>    }<a name="line.393"></a>
 <span class="sourceLineNo">394</span><a name="line.394"></a>
@@ -441,127 +441,131 @@
 <span class="sourceLineNo">433</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.433"></a>
 <span class="sourceLineNo">434</span>    static boolean failedOnce;<a name="line.434"></a>
 <span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      boolean success = super.replicate(replicateContext);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      if (success) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        replicateCount.addAndGet(replicateContext.entries.size());<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      }<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      return success;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>    @Override<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    protected Replicator createReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      // Fail only once, we don't want to slow down the test.<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      if (failedOnce) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>        return new DummyReplicator(entries, ordinal);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      } else {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>        failedOnce = true;<a name="line.451"></a>
-<span class="sourceLineNo">452</span>        return new FailingDummyReplicator(entries, ordinal);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
-<span class="sourceLineNo">455</span><a name="line.455"></a>
-<span class="sourceLineNo">456</span>    protected class DummyReplicator extends Replicator {<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>      private int ordinal;<a name="line.458"></a>
+<span class="sourceLineNo">436</span>    public InterClusterReplicationEndpointForTest() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>      replicateCount.set(0);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>    @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      boolean success = super.replicate(replicateContext);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      if (success) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        replicateCount.addAndGet(replicateContext.entries.size());<a name="line.444"></a>
+<span class="sourceLineNo">445</span>      }<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      return success;<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span>    @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    protected Replicator createReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      // Fail only once, we don't want to slow down the test.<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      if (failedOnce) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        return new DummyReplicator(entries, ordinal);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        failedOnce = true;<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        return new FailingDummyReplicator(entries, ordinal);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      }<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    }<a name="line.458"></a>
 <span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>      public DummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        super(entries, ordinal);<a name="line.461"></a>
-<span class="sourceLineNo">462</span>        this.ordinal = ordinal;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>      @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      public Integer call() throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        return ordinal;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      }<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    }<a name="line.469"></a>
-<span class="sourceLineNo">470</span><a name="line.470"></a>
-<span class="sourceLineNo">471</span>    protected class FailingDummyReplicator extends DummyReplicator {<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span>      public FailingDummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        super(entries, ordinal);<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
+<span class="sourceLineNo">460</span>    protected class DummyReplicator extends Replicator {<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>      private int ordinal;<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>      public DummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        super(entries, ordinal);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        this.ordinal = ordinal;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>      }<a name="line.467"></a>
+<span class="sourceLineNo">468</span><a name="line.468"></a>
+<span class="sourceLineNo">469</span>      @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      public Integer call() throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        return ordinal;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      }<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>    protected class FailingDummyReplicator extends DummyReplicator {<a name="line.475"></a>
 <span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>      @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      public Integer call() throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>        throw new IOException("Sample Exception: Failed to replicate.");<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      }<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>  public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    static int COUNT = 10;<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    @Override<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      try {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        // check row<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        doAssert(row);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      } catch (Exception e) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>        ex.set(e);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>      super.replicate(replicateContext);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>      replicated.set(replicateCount.get() &gt; COUNT); // first 10 times, we return false<a name="line.500"></a>
-<span class="sourceLineNo">501</span>      return replicated.get();<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    }<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span>  // return a WALEntry filter which only accepts "row", but not other rows<a name="line.505"></a>
-<span class="sourceLineNo">506</span>  public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.507"></a>
+<span class="sourceLineNo">477</span>      public FailingDummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        super(entries, ordinal);<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>      @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      public Integer call() throws IOException {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        throw new IOException("Sample Exception: Failed to replicate.");<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      }<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span>  public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    static int COUNT = 10;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>      try {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        // check row<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        doAssert(row);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>      } catch (Exception e) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        ex.set(e);<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      }<a name="line.499"></a>
+<span class="sourceLineNo">500</span><a name="line.500"></a>
+<span class="sourceLineNo">501</span>      super.replicate(replicateContext);<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>      replicated.set(replicateCount.get() &gt; COUNT); // first 10 times, we return false<a name="line.504"></a>
+<span class="sourceLineNo">505</span>      return replicated.get();<a name="line.505"></a>
+<span class="sourceLineNo">506</span>    }<a name="line.506"></a>
+<span class="sourceLineNo">507</span>  }<a name="line.507"></a>
 <span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span>    @Override<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      try {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        super.replicate(replicateContext);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>        doAssert(row);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      } catch (Exception e) {<a name="line.514"></a>
-<span class="sourceLineNo">515</span>        ex.set(e);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      }<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      return true;<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>    @Override<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    public WALEntryFilter getWALEntryfilter() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span>        public Entry filter(Entry entry) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>          ArrayList&lt;Cell&gt; cells = entry.getEdit().getCells();<a name="line.525"></a>
-<span class="sourceLineNo">526</span>          int size = cells.size();<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          for (int i = size-1; i &gt;= 0; i--) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>            Cell cell = cells.get(i);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>            if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.529"></a>
-<span class="sourceLineNo">530</span>              row, 0, row.length)) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span>              cells.remove(i);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>            }<a name="line.532"></a>
-<span class="sourceLineNo">533</span>          }<a name="line.533"></a>
-<span class="sourceLineNo">534</span>          return entry;<a name="line.534"></a>
-<span class="sourceLineNo">535</span>        }<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      });<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    }<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span>  public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    private static boolean passedEntry = false;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    public Entry filter(Entry entry) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>      passedEntry = true;<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      return entry;<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>    public static boolean hasPassedAnEntry(){<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      return passedEntry;<a name="line.549"></a>
+<span class="sourceLineNo">509</span>  // return a WALEntry filter which only accepts "row", but not other rows<a name="line.509"></a>
+<span class="sourceLineNo">510</span>  public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span>    @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      try {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        super.replicate(replicateContext);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        doAssert(row);<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      } catch (Exception e) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        ex.set(e);<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      }<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      return true;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>    }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span>    @Override<a name="line.524"></a>
+<span class="sourceLineNo">525</span>    public WALEntryFilter getWALEntryfilter() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public Entry filter(Entry entry) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>          ArrayList&lt;Cell&gt; cells = entry.getEdit().getCells();<a name="line.529"></a>
+<span class="sourceLineNo">530</span>          int size = cells.size();<a name="line.530"></a>
+<span class="sourceLineNo">531</span>          for (int i = size-1; i &gt;= 0; i--) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>            Cell cell = cells.get(i);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>            if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.533"></a>
+<span class="sourceLineNo">534</span>              row, 0, row.length)) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>              cells.remove(i);<a name="line.535"></a>
+<span class="sourceLineNo">536</span>            }<a name="line.536"></a>
+<span class="sourceLineNo">537</span>          }<a name="line.537"></a>
+<span class="sourceLineNo">538</span>          return entry;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        }<a name="line.539"></a>
+<span class="sourceLineNo">540</span>      });<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>  }<a name="line.542"></a>
+<span class="sourceLineNo">543</span><a name="line.543"></a>
+<span class="sourceLineNo">544</span>  public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.544"></a>
+<span class="sourceLineNo">545</span>    private static boolean passedEntry = false;<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    public Entry filter(Entry entry) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>      passedEntry = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      return entry;<a name="line.549"></a>
 <span class="sourceLineNo">550</span>    }<a name="line.550"></a>
-<span class="sourceLineNo">551</span>  }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span>  public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>    public static boolean hasPassedAnEntry(){<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      return passedEntry;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    }<a name="line.554"></a>
 <span class="sourceLineNo">555</span>  }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>}<a name="line.556"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span>  public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span>  }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>}<a name="line.560"></a>
 
 
 


[16/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html
index 38bca54..d404ed4 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html
@@ -224,7 +224,7 @@
 <span class="sourceLineNo">216</span>    try {<a name="line.216"></a>
 <span class="sourceLineNo">217</span>      limiter.checkQuota(1, 1);<a name="line.217"></a>
 <span class="sourceLineNo">218</span>      fail("Should have thrown ThrottlingException");<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    } catch (ThrottlingException e) {<a name="line.219"></a>
+<span class="sourceLineNo">219</span>    } catch (RpcThrottlingException e) {<a name="line.219"></a>
 <span class="sourceLineNo">220</span>      // expected<a name="line.220"></a>
 <span class="sourceLineNo">221</span>    }<a name="line.221"></a>
 <span class="sourceLineNo">222</span>  }<a name="line.222"></a>
@@ -233,7 +233,7 @@
 <span class="sourceLineNo">225</span>    for (int i = 0; i &lt; availReqs; ++i) {<a name="line.225"></a>
 <span class="sourceLineNo">226</span>      try {<a name="line.226"></a>
 <span class="sourceLineNo">227</span>        limiter.checkQuota(1, 1);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      } catch (ThrottlingException e) {<a name="line.228"></a>
+<span class="sourceLineNo">228</span>      } catch (RpcThrottlingException e) {<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        fail("Unexpected ThrottlingException after " + i + " requests. limit=" + availReqs);<a name="line.229"></a>
 <span class="sourceLineNo">230</span>      }<a name="line.230"></a>
 <span class="sourceLineNo">231</span>      limiter.grabQuota(1, 1);<a name="line.231"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaThrottle.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaThrottle.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaThrottle.html
index 3289d63..28d5840 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaThrottle.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaThrottle.html
@@ -528,7 +528,7 @@
 <span class="sourceLineNo">520</span>        }<a name="line.520"></a>
 <span class="sourceLineNo">521</span>        count += tables.length;<a name="line.521"></a>
 <span class="sourceLineNo">522</span>      }<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    } catch (ThrottlingException e) {<a name="line.523"></a>
+<span class="sourceLineNo">523</span>    } catch (RpcThrottlingException e) {<a name="line.523"></a>
 <span class="sourceLineNo">524</span>      LOG.error("put failed after nRetries=" + count, e);<a name="line.524"></a>
 <span class="sourceLineNo">525</span>    }<a name="line.525"></a>
 <span class="sourceLineNo">526</span>    return count;<a name="line.526"></a>
@@ -544,7 +544,7 @@
 <span class="sourceLineNo">536</span>        }<a name="line.536"></a>
 <span class="sourceLineNo">537</span>        count += tables.length;<a name="line.537"></a>
 <span class="sourceLineNo">538</span>      }<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    } catch (ThrottlingException e) {<a name="line.539"></a>
+<span class="sourceLineNo">539</span>    } catch (RpcThrottlingException e) {<a name="line.539"></a>
 <span class="sourceLineNo">540</span>      LOG.error("get failed after nRetries=" + count, e);<a name="line.540"></a>
 <span class="sourceLineNo">541</span>    }<a name="line.541"></a>
 <span class="sourceLineNo">542</span>    return count;<a name="line.542"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.CoprocessorCounter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.CoprocessorCounter.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.CoprocessorCounter.html
index 61b1cde..96ac231 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.CoprocessorCounter.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.CoprocessorCounter.html
@@ -98,7 +98,7 @@
 <span class="sourceLineNo">090</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.90"></a>
 <span class="sourceLineNo">091</span>      HBaseClassTestRule.forClass(TestMasterReplication.class);<a name="line.91"></a>
 <span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>  private static final Logger LOG = LoggerFactory.getLogger(TestReplicationBase.class);<a name="line.93"></a>
+<span class="sourceLineNo">093</span>  private static final Logger LOG = LoggerFactory.getLogger(TestMasterReplication.class);<a name="line.93"></a>
 <span class="sourceLineNo">094</span><a name="line.94"></a>
 <span class="sourceLineNo">095</span>  private Configuration baseConfiguration;<a name="line.95"></a>
 <span class="sourceLineNo">096</span><a name="line.96"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.html
index 61b1cde..96ac231 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMasterReplication.html
@@ -98,7 +98,7 @@
 <span class="sourceLineNo">090</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.90"></a>
 <span class="sourceLineNo">091</span>      HBaseClassTestRule.forClass(TestMasterReplication.class);<a name="line.91"></a>
 <span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>  private static final Logger LOG = LoggerFactory.getLogger(TestReplicationBase.class);<a name="line.93"></a>
+<span class="sourceLineNo">093</span>  private static final Logger LOG = LoggerFactory.getLogger(TestMasterReplication.class);<a name="line.93"></a>
 <span class="sourceLineNo">094</span><a name="line.94"></a>
 <span class="sourceLineNo">095</span>  private Configuration baseConfiguration;<a name="line.95"></a>
 <span class="sourceLineNo">096</span><a name="line.96"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMultiSlaveReplication.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMultiSlaveReplication.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMultiSlaveReplication.html
index 525102f..d56c027 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMultiSlaveReplication.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestMultiSlaveReplication.html
@@ -66,7 +66,7 @@
 <span class="sourceLineNo">058</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.58"></a>
 <span class="sourceLineNo">059</span>      HBaseClassTestRule.forClass(TestMultiSlaveReplication.class);<a name="line.59"></a>
 <span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>  private static final Logger LOG = LoggerFactory.getLogger(TestReplicationBase.class);<a name="line.61"></a>
+<span class="sourceLineNo">061</span>  private static final Logger LOG = LoggerFactory.getLogger(TestMultiSlaveReplication.class);<a name="line.61"></a>
 <span class="sourceLineNo">062</span><a name="line.62"></a>
 <span class="sourceLineNo">063</span>  private static Configuration conf1;<a name="line.63"></a>
 <span class="sourceLineNo">064</span>  private static Configuration conf2;<a name="line.64"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html
index 55fce2e..55f92a9 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestNamespaceReplication.html
@@ -57,206 +57,226 @@
 <span class="sourceLineNo">049</span>import org.junit.ClassRule;<a name="line.49"></a>
 <span class="sourceLineNo">050</span>import org.junit.Test;<a name="line.50"></a>
 <span class="sourceLineNo">051</span>import org.junit.experimental.categories.Category;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.slf4j.Logger;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.slf4j.LoggerFactory;<a name="line.53"></a>
-<span class="sourceLineNo">054</span><a name="line.54"></a>
-<span class="sourceLineNo">055</span>@Category({MediumTests.class})<a name="line.55"></a>
-<span class="sourceLineNo">056</span>public class TestNamespaceReplication extends TestReplicationBase {<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>  @ClassRule<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.59"></a>
-<span class="sourceLineNo">060</span>      HBaseClassTestRule.forClass(TestNamespaceReplication.class);<a name="line.60"></a>
-<span class="sourceLineNo">061</span><a name="line.61"></a>
-<span class="sourceLineNo">062</span>  private static final Logger LOG = LoggerFactory.getLogger(TestNamespaceReplication.class);<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>  private static String ns1 = "ns1";<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  private static String ns2 = "ns2";<a name="line.65"></a>
-<span class="sourceLineNo">066</span><a name="line.66"></a>
-<span class="sourceLineNo">067</span>  private static final TableName tabAName = TableName.valueOf("ns1:TA");<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  private static final TableName tabBName = TableName.valueOf("ns2:TB");<a name="line.68"></a>
-<span class="sourceLineNo">069</span><a name="line.69"></a>
-<span class="sourceLineNo">070</span>  private static final byte[] f1Name = Bytes.toBytes("f1");<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  private static final byte[] f2Name = Bytes.toBytes("f2");<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private static final byte[] val = Bytes.toBytes("myval");<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>  private static Connection connection1;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private static Connection connection2;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  private static Admin admin1;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  private static Admin admin2;<a name="line.78"></a>
+<span class="sourceLineNo">052</span>import org.junit.runner.RunWith;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.junit.runners.Parameterized;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.junit.runners.Parameterized.Parameter;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.junit.runners.Parameterized.Parameters;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.slf4j.Logger;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.slf4j.LoggerFactory;<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableList;<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>@RunWith(Parameterized.class)<a name="line.61"></a>
+<span class="sourceLineNo">062</span>@Category({ MediumTests.class })<a name="line.62"></a>
+<span class="sourceLineNo">063</span>public class TestNamespaceReplication extends TestReplicationBase {<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>  @ClassRule<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.66"></a>
+<span class="sourceLineNo">067</span>      HBaseClassTestRule.forClass(TestNamespaceReplication.class);<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>  private static final Logger LOG = LoggerFactory.getLogger(TestNamespaceReplication.class);<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  private static String ns1 = "ns1";<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  private static String ns2 = "ns2";<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>  private static final TableName tabAName = TableName.valueOf("ns1:TA");<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  private static final TableName tabBName = TableName.valueOf("ns2:TB");<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>  private static final byte[] f1Name = Bytes.toBytes("f1");<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  private static final byte[] f2Name = Bytes.toBytes("f2");<a name="line.78"></a>
 <span class="sourceLineNo">079</span><a name="line.79"></a>
-<span class="sourceLineNo">080</span>  @BeforeClass<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  public static void setUpBeforeClass() throws Exception {<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    TestReplicationBase.setUpBeforeClass();<a name="line.82"></a>
-<span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span>    connection1 = ConnectionFactory.createConnection(conf1);<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    connection2 = ConnectionFactory.createConnection(conf2);<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    admin1 = connection1.getAdmin();<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    admin2 = connection2.getAdmin();<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>    admin1.createNamespace(NamespaceDescriptor.create(ns1).build());<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    admin1.createNamespace(NamespaceDescriptor.create(ns2).build());<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    admin2.createNamespace(NamespaceDescriptor.create(ns1).build());<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    admin2.createNamespace(NamespaceDescriptor.create(ns2).build());<a name="line.92"></a>
-<span class="sourceLineNo">093</span><a name="line.93"></a>
-<span class="sourceLineNo">094</span>    TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(tabAName);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    builder.setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.95"></a>
-<span class="sourceLineNo">096</span>      .newBuilder(f1Name).setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build());<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    builder.setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      .newBuilder(f2Name).setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build());<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    TableDescriptor tabA = builder.build();<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    admin1.createTable(tabA);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    admin2.createTable(tabA);<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>    builder = TableDescriptorBuilder.newBuilder(tabBName);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    builder.setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.104"></a>
-<span class="sourceLineNo">105</span>      .newBuilder(f1Name).setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build());<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    builder.setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      .newBuilder(f2Name).setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build());<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    TableDescriptor tabB = builder.build();<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    admin1.createTable(tabB);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    admin2.createTable(tabB);<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  }<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>  @AfterClass<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  public static void tearDownAfterClass() throws Exception {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    admin1.disableTable(tabAName);<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    admin1.deleteTable(tabAName);<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    admin1.disableTable(tabBName);<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    admin1.deleteTable(tabBName);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    admin2.disableTable(tabAName);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    admin2.deleteTable(tabAName);<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    admin2.disableTable(tabBName);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    admin2.deleteTable(tabBName);<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>    admin1.deleteNamespace(ns1);<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    admin1.deleteNamespace(ns2);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    admin2.deleteNamespace(ns1);<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    admin2.deleteNamespace(ns2);<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>    connection1.close();<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    connection2.close();<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    TestReplicationBase.tearDownAfterClass();<a name="line.131"></a>
-<span class="sourceLineNo">132</span>  }<a name="line.132"></a>
-<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>  @Test<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  public void testNamespaceReplication() throws Exception {<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    String peerId = "2";<a name="line.136"></a>
-<span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span>    Table htab1A = connection1.getTable(tabAName);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    Table htab2A = connection2.getTable(tabAName);<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>    Table htab1B = connection1.getTable(tabBName);<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    Table htab2B = connection2.getTable(tabBName);<a name="line.142"></a>
+<span class="sourceLineNo">080</span>  private static final byte[] val = Bytes.toBytes("myval");<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private static Connection connection1;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private static Connection connection2;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  private static Admin admin1;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  private static Admin admin2;<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>  @Parameter<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  public boolean serialPeer;<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>  @Override<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  protected boolean isSerialPeer() {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    return serialPeer;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>  @Parameters(name = "{index}: serialPeer={0}")<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public static List&lt;Boolean&gt; parameters() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    return ImmutableList.of(true, false);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  }<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>  @BeforeClass<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  public static void setUpBeforeClass() throws Exception {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    TestReplicationBase.setUpBeforeClass();<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>    connection1 = ConnectionFactory.createConnection(conf1);<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    connection2 = ConnectionFactory.createConnection(conf2);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    admin1 = connection1.getAdmin();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    admin2 = connection2.getAdmin();<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>    admin1.createNamespace(NamespaceDescriptor.create(ns1).build());<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    admin1.createNamespace(NamespaceDescriptor.create(ns2).build());<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    admin2.createNamespace(NamespaceDescriptor.create(ns1).build());<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    admin2.createNamespace(NamespaceDescriptor.create(ns2).build());<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>    TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(tabAName);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    builder.setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      .newBuilder(f1Name).setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build());<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    builder.setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      .newBuilder(f2Name).setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build());<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    TableDescriptor tabA = builder.build();<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    admin1.createTable(tabA);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    admin2.createTable(tabA);<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>    builder = TableDescriptorBuilder.newBuilder(tabBName);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    builder.setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      .newBuilder(f1Name).setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build());<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    builder.setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      .newBuilder(f2Name).setScope(HConstants.REPLICATION_SCOPE_GLOBAL).build());<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    TableDescriptor tabB = builder.build();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    admin1.createTable(tabB);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    admin2.createTable(tabB);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>  @AfterClass<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  public static void tearDownAfterClass() throws Exception {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    admin1.disableTable(tabAName);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    admin1.deleteTable(tabAName);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    admin1.disableTable(tabBName);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    admin1.deleteTable(tabBName);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    admin2.disableTable(tabAName);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    admin2.deleteTable(tabAName);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    admin2.disableTable(tabBName);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    admin2.deleteTable(tabBName);<a name="line.142"></a>
 <span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>    ReplicationPeerConfig rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    admin1.updateReplicationPeerConfig(peerId,<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      ReplicationPeerConfig.newBuilder(rpc).setReplicateAllUserTables(false).build());<a name="line.146"></a>
-<span class="sourceLineNo">147</span><a name="line.147"></a>
-<span class="sourceLineNo">148</span>    // add ns1 to peer config which replicate to cluster2<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    Set&lt;String&gt; namespaces = new HashSet&lt;&gt;();<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    namespaces.add(ns1);<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    admin1.updateReplicationPeerConfig(peerId,<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      ReplicationPeerConfig.newBuilder(rpc).setNamespaces(namespaces).build());<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    LOG.info("update peer config");<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>    // Table A can be replicated to cluster2<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    put(htab1A, row, f1Name, f2Name);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    ensureRowExisted(htab2A, row, f1Name, f2Name);<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    delete(htab1A, row, f1Name, f2Name);<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    ensureRowNotExisted(htab2A, row, f1Name, f2Name);<a name="line.160"></a>
-<span class="sourceLineNo">161</span><a name="line.161"></a>
-<span class="sourceLineNo">162</span>    // Table B can not be replicated to cluster2<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    put(htab1B, row, f1Name, f2Name);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    ensureRowNotExisted(htab2B, row, f1Name, f2Name);<a name="line.164"></a>
-<span class="sourceLineNo">165</span><a name="line.165"></a>
-<span class="sourceLineNo">166</span>    // add ns1:TA =&gt; 'f1' and ns2 to peer config which replicate to cluster2<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    namespaces = new HashSet&lt;&gt;();<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    namespaces.add(ns2);<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    Map&lt;TableName, List&lt;String&gt;&gt; tableCfs = new HashMap&lt;&gt;();<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    tableCfs.put(tabAName, new ArrayList&lt;&gt;());<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    tableCfs.get(tabAName).add("f1");<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    admin1.updateReplicationPeerConfig(peerId, ReplicationPeerConfig.newBuilder(rpc)<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        .setNamespaces(namespaces).setTableCFsMap(tableCfs).build());<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    LOG.info("update peer config");<a name="line.175"></a>
-<span class="sourceLineNo">176</span><a name="line.176"></a>
-<span class="sourceLineNo">177</span>    // Only family f1 of Table A can replicated to cluster2<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    put(htab1A, row, f1Name, f2Name);<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    ensureRowExisted(htab2A, row, f1Name);<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    delete(htab1A, row, f1Name, f2Name);<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    ensureRowNotExisted(htab2A, row, f1Name);<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>    // All cfs of table B can replicated to cluster2<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    put(htab1B, row, f1Name, f2Name);<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    ensureRowExisted(htab2B, row, f1Name, f2Name);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    delete(htab1B, row, f1Name, f2Name);<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    ensureRowNotExisted(htab2B, row, f1Name, f2Name);<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>    admin1.removeReplicationPeer(peerId);<a name="line.189"></a>
-<span class="sourceLineNo">190</span>  }<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>  private void put(Table source, byte[] row, byte[]... families)<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      throws Exception {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    for (byte[] fam : families) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      Put put = new Put(row);<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      put.addColumn(fam, row, val);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      source.put(put);<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    }<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  }<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private void delete(Table source, byte[] row, byte[]... families)<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      throws Exception {<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    for (byte[] fam : families) {<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      Delete del = new Delete(row);<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      del.addFamily(fam);<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      source.delete(del);<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    }<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  }<a name="line.208"></a>
-<span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span>  private void ensureRowExisted(Table target, byte[] row, byte[]... families)<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      throws Exception {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    for (byte[] fam : families) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      Get get = new Get(row);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      get.addFamily(fam);<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>        if (i == NB_RETRIES - 1) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>          fail("Waited too much time for put replication");<a name="line.217"></a>
-<span class="sourceLineNo">218</span>        }<a name="line.218"></a>
-<span class="sourceLineNo">219</span>        Result res = target.get(get);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        if (res.isEmpty()) {<a name="line.220"></a>
-<span class="sourceLineNo">221</span>          LOG.info("Row not available");<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        } else {<a name="line.222"></a>
-<span class="sourceLineNo">223</span>          assertEquals(1, res.size());<a name="line.223"></a>
-<span class="sourceLineNo">224</span>          assertArrayEquals(val, res.value());<a name="line.224"></a>
-<span class="sourceLineNo">225</span>          break;<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        }<a name="line.226"></a>
-<span class="sourceLineNo">227</span>        Thread.sleep(SLEEP_TIME);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      }<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    }<a name="line.229"></a>
-<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
-<span class="sourceLineNo">231</span><a name="line.231"></a>
-<span class="sourceLineNo">232</span>  private void ensureRowNotExisted(Table target, byte[] row, byte[]... families)<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      throws Exception {<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    for (byte[] fam : families) {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      Get get = new Get(row);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      get.addFamily(fam);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>        if (i == NB_RETRIES - 1) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>          fail("Waited too much time for delete replication");<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        }<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        Result res = target.get(get);<a name="line.241"></a>
-<span class="sourceLineNo">242</span>        if (res.size() &gt;= 1) {<a name="line.242"></a>
-<span class="sourceLineNo">243</span>          LOG.info("Row not deleted");<a name="line.243"></a>
-<span class="sourceLineNo">244</span>        } else {<a name="line.244"></a>
+<span class="sourceLineNo">144</span>    admin1.deleteNamespace(ns1);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    admin1.deleteNamespace(ns2);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    admin2.deleteNamespace(ns1);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    admin2.deleteNamespace(ns2);<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>    connection1.close();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    connection2.close();<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    TestReplicationBase.tearDownAfterClass();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  }<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>  @Test<a name="line.154"></a>
+<span class="sourceLineNo">155</span>  public void testNamespaceReplication() throws Exception {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    String peerId = "2";<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span>    Table htab1A = connection1.getTable(tabAName);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    Table htab2A = connection2.getTable(tabAName);<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span>    Table htab1B = connection1.getTable(tabBName);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    Table htab2B = connection2.getTable(tabBName);<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>    ReplicationPeerConfig rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    admin1.updateReplicationPeerConfig(peerId,<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      ReplicationPeerConfig.newBuilder(rpc).setReplicateAllUserTables(false).build());<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>    // add ns1 to peer config which replicate to cluster2<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    Set&lt;String&gt; namespaces = new HashSet&lt;&gt;();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    namespaces.add(ns1);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    admin1.updateReplicationPeerConfig(peerId,<a name="line.172"></a>
+<span class="sourceLineNo">173</span>      ReplicationPeerConfig.newBuilder(rpc).setNamespaces(namespaces).build());<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    LOG.info("update peer config");<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>    // Table A can be replicated to cluster2<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    put(htab1A, row, f1Name, f2Name);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    ensureRowExisted(htab2A, row, f1Name, f2Name);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    delete(htab1A, row, f1Name, f2Name);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    ensureRowNotExisted(htab2A, row, f1Name, f2Name);<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span>    // Table B can not be replicated to cluster2<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    put(htab1B, row, f1Name, f2Name);<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    ensureRowNotExisted(htab2B, row, f1Name, f2Name);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>    // add ns1:TA =&gt; 'f1' and ns2 to peer config which replicate to cluster2<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    rpc = admin1.getReplicationPeerConfig(peerId);<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    namespaces = new HashSet&lt;&gt;();<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    namespaces.add(ns2);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    Map&lt;TableName, List&lt;String&gt;&gt; tableCfs = new HashMap&lt;&gt;();<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    tableCfs.put(tabAName, new ArrayList&lt;&gt;());<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    tableCfs.get(tabAName).add("f1");<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    admin1.updateReplicationPeerConfig(peerId, ReplicationPeerConfig.newBuilder(rpc)<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        .setNamespaces(namespaces).setTableCFsMap(tableCfs).build());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    LOG.info("update peer config");<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>    // Only family f1 of Table A can replicated to cluster2<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    put(htab1A, row, f1Name, f2Name);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    ensureRowExisted(htab2A, row, f1Name);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    delete(htab1A, row, f1Name, f2Name);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    ensureRowNotExisted(htab2A, row, f1Name);<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>    // All cfs of table B can replicated to cluster2<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    put(htab1B, row, f1Name, f2Name);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    ensureRowExisted(htab2B, row, f1Name, f2Name);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    delete(htab1B, row, f1Name, f2Name);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    ensureRowNotExisted(htab2B, row, f1Name, f2Name);<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>    admin1.removeReplicationPeer(peerId);<a name="line.209"></a>
+<span class="sourceLineNo">210</span>  }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>  private void put(Table source, byte[] row, byte[]... families)<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      throws Exception {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    for (byte[] fam : families) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      Put put = new Put(row);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>      put.addColumn(fam, row, val);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      source.put(put);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    }<a name="line.218"></a>
+<span class="sourceLineNo">219</span>  }<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>  private void delete(Table source, byte[] row, byte[]... families)<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      throws Exception {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    for (byte[] fam : families) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      Delete del = new Delete(row);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      del.addFamily(fam);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      source.delete(del);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  }<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>  private void ensureRowExisted(Table target, byte[] row, byte[]... families)<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      throws Exception {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    for (byte[] fam : families) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      Get get = new Get(row);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      get.addFamily(fam);<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        if (i == NB_RETRIES - 1) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>          fail("Waited too much time for put replication");<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        }<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        Result res = target.get(get);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        if (res.isEmpty()) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>          LOG.info("Row not available");<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        } else {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>          assertEquals(1, res.size());<a name="line.243"></a>
+<span class="sourceLineNo">244</span>          assertArrayEquals(val, res.value());<a name="line.244"></a>
 <span class="sourceLineNo">245</span>          break;<a name="line.245"></a>
 <span class="sourceLineNo">246</span>        }<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        Thread.sleep(SLEEP_TIME);<a name="line.247"></a>
+<span class="sourceLineNo">247</span>        Thread.sleep(10 * SLEEP_TIME);<a name="line.247"></a>
 <span class="sourceLineNo">248</span>      }<a name="line.248"></a>
 <span class="sourceLineNo">249</span>    }<a name="line.249"></a>
 <span class="sourceLineNo">250</span>  }<a name="line.250"></a>
-<span class="sourceLineNo">251</span>}<a name="line.251"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>  private void ensureRowNotExisted(Table target, byte[] row, byte[]... families)<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      throws Exception {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    for (byte[] fam : families) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      Get get = new Get(row);<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      get.addFamily(fam);<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      for (int i = 0; i &lt; NB_RETRIES; i++) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        if (i == NB_RETRIES - 1) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>          fail("Waited too much time for delete replication");<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        }<a name="line.260"></a>
+<span class="sourceLineNo">261</span>        Result res = target.get(get);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        if (res.size() &gt;= 1) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>          LOG.info("Row not deleted");<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        } else {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>          break;<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        Thread.sleep(10 * SLEEP_TIME);<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      }<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    }<a name="line.269"></a>
+<span class="sourceLineNo">270</span>  }<a name="line.270"></a>
+<span class="sourceLineNo">271</span>}<a name="line.271"></a>
 
 
 


[07/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html
index bee8222..7a938de 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointReturningFalse.html
@@ -72,7 +72,7 @@
 <span class="sourceLineNo">064</span>/**<a name="line.64"></a>
 <span class="sourceLineNo">065</span> * Tests ReplicationSource and ReplicationEndpoint interactions<a name="line.65"></a>
 <span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@Category({ReplicationTests.class, MediumTests.class})<a name="line.67"></a>
+<span class="sourceLineNo">067</span>@Category({ ReplicationTests.class, MediumTests.class })<a name="line.67"></a>
 <span class="sourceLineNo">068</span>public class TestReplicationEndpoint extends TestReplicationBase {<a name="line.68"></a>
 <span class="sourceLineNo">069</span><a name="line.69"></a>
 <span class="sourceLineNo">070</span>  @ClassRule<a name="line.70"></a>
@@ -86,317 +86,317 @@
 <span class="sourceLineNo">078</span>  @BeforeClass<a name="line.78"></a>
 <span class="sourceLineNo">079</span>  public static void setUpBeforeClass() throws Exception {<a name="line.79"></a>
 <span class="sourceLineNo">080</span>    TestReplicationBase.setUpBeforeClass();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    admin.removePeer("2");<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  @AfterClass<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  public static void tearDownAfterClass() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    TestReplicationBase.tearDownAfterClass();<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    // check stop is called<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() &gt; 0);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  }<a name="line.90"></a>
-<span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>  @Before<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  public void setup() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    ReplicationEndpointForTest.contructedCount.set(0);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    ReplicationEndpointForTest.startedCount.set(0);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    ReplicationEndpointForTest.replicateCount.set(0);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    ReplicationEndpointForTest.lastEntries = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    final List&lt;RegionServerThread&gt; rsThreads =<a name="line.99"></a>
-<span class="sourceLineNo">100</span>        utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    for (RegionServerThread rs : rsThreads) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    // Wait for  all log roll to finish<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    utility1.waitFor(3000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      @Override<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      public boolean evaluate() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>        for (RegionServerThread rs : rsThreads) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span>            return false;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>          }<a name="line.111"></a>
-<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>        return true;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>      @Override<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      public String explainFailure() throws Exception {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        List&lt;String&gt; logRollInProgressRsList = new ArrayList&lt;&gt;();<a name="line.118"></a>
-<span class="sourceLineNo">119</span>        for (RegionServerThread rs : rsThreads) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>            logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.121"></a>
-<span class="sourceLineNo">122</span>          }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>        }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>        return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      }<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    });<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>  @Test<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  public void testCustomReplicationEndpoint() throws Exception {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    // test installing a custom replication endpoint other than the default one.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    admin.addPeer("testCustomReplicationEndpoint",<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.133"></a>
-<span class="sourceLineNo">134</span>            .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    // check whether the class has been constructed and started<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      public boolean evaluate() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        return ReplicationEndpointForTest.contructedCount.get() &gt;= numRegionServers;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      }<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    });<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      @Override<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      public boolean evaluate() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>        return ReplicationEndpointForTest.startedCount.get() &gt;= numRegionServers;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      }<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    });<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>    // now replicate some data.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    doPut(Bytes.toBytes("row42"));<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      public boolean evaluate() throws Exception {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      }<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    });<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>    doAssert(Bytes.toBytes("row42"));<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>    admin.removePeer("testCustomReplicationEndpoint");<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>  @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    int peerCount = admin.getPeersCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    admin.addPeer(id,<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.175"></a>
-<span class="sourceLineNo">176</span>        .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    // debug.  Peer needs to be up for the edit to make it across. This wait on<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    // peer count seems to be a hack that has us not progress till peer is up.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    if (admin.getPeersCount() &lt;= peerCount) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      Threads.sleep(100);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    // now replicate some data<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    doPut(row);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      public boolean evaluate() throws Exception {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        // only send over one edit.<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        LOG.info("count=" + count);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>        return ReplicationEndpointReturningFalse.replicated.get();<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    });<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      throw ReplicationEndpointReturningFalse.ex.get();<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>    admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.201"></a>
-<span class="sourceLineNo">202</span>  }<a name="line.202"></a>
-<span class="sourceLineNo">203</span><a name="line.203"></a>
-<span class="sourceLineNo">204</span>  @Test<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  public void testInterClusterReplication() throws Exception {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    final String id = "testInterClusterReplication";<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>    List&lt;HRegion&gt; regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    int totEdits = 0;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>    // Make sure edits are spread across regions because we do region based batching<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    // before shipping edits.<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    for(HRegion region: regions) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      RegionInfo hri = region.getRegionInfo();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      byte[] row = hri.getStartKey();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      for (int i = 0; i &lt; 100; i++) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        if (row.length &gt; 0) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>          Put put = new Put(row);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          put.addColumn(famName, row, row);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          region.put(put);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>          totEdits++;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        }<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      }<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>    admin.addPeer(id,<a name="line.226"></a>
-<span class="sourceLineNo">227</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.227"></a>
-<span class="sourceLineNo">228</span>            .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        null);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>    final int numEdits = totEdits;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      public boolean evaluate() throws Exception {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>      @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      public String explainFailure() throws Exception {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.240"></a>
-<span class="sourceLineNo">241</span>            + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>        return failure;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      }<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    });<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>    admin.removePeer("testInterClusterReplication");<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    utility1.deleteTableData(tableName);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  @Test<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.252"></a>
-<span class="sourceLineNo">253</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    //test that we can create mutliple WALFilters reflectively<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        EverythingPassesWALEntryFilter.class.getName() +<a name="line.256"></a>
-<span class="sourceLineNo">257</span>            "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    // now replicate some data.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      doPut(connection, Bytes.toBytes("row1"));<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      doPut(connection, row);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      doPut(connection, Bytes.toBytes("row2"));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      public boolean evaluate() throws Exception {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    });<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>    Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    //make sure our reflectively created filter is in the filter chain<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span>  @Test (expected=IOException.class)<a name="line.279"></a>
-<span class="sourceLineNo">280</span>  public void testWALEntryFilterAddValidation() throws Exception {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    //test that we can create mutliple WALFilters reflectively<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        "IAmNotARealWalEntryFilter");<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  }<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span>  @Test (expected=IOException.class)<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.291"></a>
-<span class="sourceLineNo">292</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    //test that we can create mutliple WALFilters reflectively<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.294"></a>
-<span class="sourceLineNo">295</span>        "IAmNotARealWalEntryFilter");<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>  }<a name="line.297"></a>
+<span class="sourceLineNo">081</span>    numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  @AfterClass<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  public static void tearDownAfterClass() throws Exception {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    TestReplicationBase.tearDownAfterClass();<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    // check stop is called<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() &gt; 0);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>  @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  public void setup() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    ReplicationEndpointForTest.contructedCount.set(0);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    ReplicationEndpointForTest.startedCount.set(0);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    ReplicationEndpointForTest.replicateCount.set(0);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    ReplicationEndpointForTest.lastEntries = null;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    final List&lt;RegionServerThread&gt; rsThreads =<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    for (RegionServerThread rs : rsThreads) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    // Wait for  all log roll to finish<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    utility1.waitFor(3000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      public boolean evaluate() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        for (RegionServerThread rs : rsThreads) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>            return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>          }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        return true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>      @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      public String explainFailure() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        List&lt;String&gt; logRollInProgressRsList = new ArrayList&lt;&gt;();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        for (RegionServerThread rs : rsThreads) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>            logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.120"></a>
+<span class="sourceLineNo">121</span>          }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    });<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>  @Test<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  public void testCustomReplicationEndpoint() throws Exception {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // test installing a custom replication endpoint other than the default one.<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    admin.addPeer("testCustomReplicationEndpoint",<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.132"></a>
+<span class="sourceLineNo">133</span>            .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>    // check whether the class has been constructed and started<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      public boolean evaluate() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        return ReplicationEndpointForTest.contructedCount.get() &gt;= numRegionServers;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    });<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      public boolean evaluate() throws Exception {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        return ReplicationEndpointForTest.startedCount.get() &gt;= numRegionServers;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    });<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    // now replicate some data.<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    doPut(Bytes.toBytes("row42"));<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      public boolean evaluate() throws Exception {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    });<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>    doAssert(Bytes.toBytes("row42"));<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>    admin.removePeer("testCustomReplicationEndpoint");<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>  @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    int peerCount = admin.getPeersCount();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    admin.addPeer(id,<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    // debug.  Peer needs to be up for the edit to make it across. This wait on<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    // peer count seems to be a hack that has us not progress till peer is up.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    if (admin.getPeersCount() &lt;= peerCount) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      Threads.sleep(100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    // now replicate some data<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    doPut(row);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      public boolean evaluate() throws Exception {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        // only send over one edit.<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        LOG.info("count=" + count);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        return ReplicationEndpointReturningFalse.replicated.get();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    });<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      throw ReplicationEndpointReturningFalse.ex.get();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    }<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>    admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  public void testInterClusterReplication() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    final String id = "testInterClusterReplication";<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>    List&lt;HRegion&gt; regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    int totEdits = 0;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>    // Make sure edits are spread across regions because we do region based batching<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    // before shipping edits.<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    for(HRegion region: regions) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      RegionInfo hri = region.getRegionInfo();<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      byte[] row = hri.getStartKey();<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      for (int i = 0; i &lt; 100; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        if (row.length &gt; 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          Put put = new Put(row);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>          put.addColumn(famName, row, row);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          region.put(put);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>          totEdits++;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>    admin.addPeer(id,<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.226"></a>
+<span class="sourceLineNo">227</span>            .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        null);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>    final int numEdits = totEdits;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      public boolean evaluate() throws Exception {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>      @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      public String explainFailure() throws Exception {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.239"></a>
+<span class="sourceLineNo">240</span>            + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        return failure;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    });<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>    admin.removePeer("testInterClusterReplication");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    utility1.deleteTableData(tableName);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>  @Test<a name="line.249"></a>
+<span class="sourceLineNo">250</span>  public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    //test that we can create mutliple WALFilters reflectively<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        EverythingPassesWALEntryFilter.class.getName() +<a name="line.255"></a>
+<span class="sourceLineNo">256</span>            "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    // now replicate some data.<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      doPut(connection, Bytes.toBytes("row1"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      doPut(connection, row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      doPut(connection, Bytes.toBytes("row2"));<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      public boolean evaluate() throws Exception {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      }<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    });<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span>    Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    //make sure our reflectively created filter is in the filter chain<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>  @Test (expected=IOException.class)<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  public void testWALEntryFilterAddValidation() throws Exception {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    //test that we can create mutliple WALFilters reflectively<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        "IAmNotARealWalEntryFilter");<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>  @Test (expected=IOException.class)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>  public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    //test that we can create mutliple WALFilters reflectively<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        "IAmNotARealWalEntryFilter");<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>  }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
 <span class="sourceLineNo">298</span><a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>  @Test<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  public void testMetricsSourceBaseSourcePassthrough(){<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    /*<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    allows for custom JMX metrics.<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    the two layers of wrapping to the actual BaseSource.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    */<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    String id = "id";<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>    MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    String gaugeName = "gauge";<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    String singleGaugeName = "source.id." + gaugeName;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    String globalGaugeName = "source." + gaugeName;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    long delta = 1;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    String counterName = "counter";<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    String singleCounterName = "source.id." + counterName;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    String globalCounterName = "source." + counterName;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    long count = 2;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    source.decGauge(gaugeName, delta);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    source.getMetricsContext();<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    source.getMetricsDescription();<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    source.getMetricsJmxContext();<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    source.getMetricsName();<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    source.incCounters(counterName, count);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    source.incGauge(gaugeName, delta);<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    source.init();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    source.removeMetric(gaugeName);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    source.setGauge(gaugeName, delta);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    source.updateHistogram(counterName, count);<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    verify(globalRms).getMetricsContext();<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    verify(globalRms).getMetricsJmxContext();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    verify(globalRms).getMetricsName();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    verify(singleRms).incCounters(singleCounterName, count);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    verify(globalRms).incCounters(globalCounterName, count);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    verify(globalRms).init();<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    verify(singleRms).removeMetric(singleGaugeName);<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    verify(globalRms).removeMetric(globalGaugeName);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    verify(globalRms).updateHistogram(globalCounterName, count);<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>  private void doPut(byte[] row) throws IOException {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      doPut(connection, row);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>  private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    try (Table t = connection.getTable(tableName)) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      Put put = new Put(row);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      put.addColumn(famName, row, row);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      t.put(put);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>  private static void doAssert(byte[] row) throws Exception {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      return; // first call<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    List&lt;Cell&gt; cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    Assert.assertEquals(1, cells.size());<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      cells.get(0).getRowLength(), row, 0, row.length));<a name="line.380"></a>
-<span class="sourceLineNo">381</span>  }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span>  public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    static UUID uuid = UUID.randomUUID();<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    static AtomicInteger contructedCount = new AtomicInteger();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    static AtomicInteger startedCount = new AtomicInteger();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    static volatile List&lt;Entry&gt; lastEntries = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>    public ReplicationEndpointForTest() {<a name="line.391"></a>
+<span class="sourceLineNo">299</span>  @Test<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  public void testMetricsSourceBaseSourcePassthrough(){<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    /*<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    allows for custom JMX metrics.<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    the two layers of wrapping to the actual BaseSource.<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    String id = "id";<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>    MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    String gaugeName = "gauge";<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    String singleGaugeName = "source.id." + gaugeName;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    String globalGaugeName = "source." + gaugeName;<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    long delta = 1;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    String counterName = "counter";<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    String singleCounterName = "source.id." + counterName;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    String globalCounterName = "source." + counterName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    long count = 2;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    source.decGauge(gaugeName, delta);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    source.getMetricsContext();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    source.getMetricsDescription();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    source.getMetricsJmxContext();<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    source.getMetricsName();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    source.incCounters(counterName, count);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    source.incGauge(gaugeName, delta);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    source.init();<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    source.removeMetric(gaugeName);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    source.setGauge(gaugeName, delta);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    source.updateHistogram(counterName, count);<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>    verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    verify(globalRms).getMetricsContext();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    verify(globalRms).getMetricsJmxContext();<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    verify(globalRms).getMetricsName();<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    verify(singleRms).incCounters(singleCounterName, count);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    verify(globalRms).incCounters(globalCounterName, count);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    verify(globalRms).init();<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    verify(singleRms).removeMetric(singleGaugeName);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    verify(globalRms).removeMetric(globalGaugeName);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    verify(globalRms).updateHistogram(globalCounterName, count);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>  private void doPut(byte[] row) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      doPut(connection, row);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>  private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    try (Table t = connection.getTable(tableName)) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      Put put = new Put(row);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      put.addColumn(famName, row, row);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      t.put(put);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>  private static void doAssert(byte[] row) throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      return; // first call<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    List&lt;Cell&gt; cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    Assert.assertEquals(1, cells.size());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      cells.get(0).getRowLength(), row, 0, row.length));<a name="line.379"></a>
+<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>  public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    static UUID uuid = UUID.randomUUID();<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    static AtomicInteger contructedCount = new AtomicInteger();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    static AtomicInteger startedCount = new AtomicInteger();<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    static volatile List&lt;Entry&gt; lastEntries = null;<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>    public ReplicationEndpointForTest() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      replicateCount.set(0);<a name="line.391"></a>
 <span class="sourceLineNo">392</span>      contructedCount.incrementAndGet();<a name="line.392"></a>
 <span class="sourceLineNo">393</span>    }<a name="line.393"></a>
 <span class="sourceLineNo">394</span><a name="line.394"></a>
@@ -441,127 +441,131 @@
 <span class="sourceLineNo">433</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.433"></a>
 <span class="sourceLineNo">434</span>    static boolean failedOnce;<a name="line.434"></a>
 <span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      boolean success = super.replicate(replicateContext);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      if (success) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        replicateCount.addAndGet(replicateContext.entries.size());<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      }<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      return success;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>    @Override<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    protected Replicator createReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      // Fail only once, we don't want to slow down the test.<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      if (failedOnce) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>        return new DummyReplicator(entries, ordinal);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      } else {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>        failedOnce = true;<a name="line.451"></a>
-<span class="sourceLineNo">452</span>        return new FailingDummyReplicator(entries, ordinal);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
-<span class="sourceLineNo">455</span><a name="line.455"></a>
-<span class="sourceLineNo">456</span>    protected class DummyReplicator extends Replicator {<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>      private int ordinal;<a name="line.458"></a>
+<span class="sourceLineNo">436</span>    public InterClusterReplicationEndpointForTest() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>      replicateCount.set(0);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>    @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      boolean success = super.replicate(replicateContext);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      if (success) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        replicateCount.addAndGet(replicateContext.entries.size());<a name="line.444"></a>
+<span class="sourceLineNo">445</span>      }<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      return success;<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span>    @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    protected Replicator createReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      // Fail only once, we don't want to slow down the test.<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      if (failedOnce) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        return new DummyReplicator(entries, ordinal);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        failedOnce = true;<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        return new FailingDummyReplicator(entries, ordinal);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      }<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    }<a name="line.458"></a>
 <span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>      public DummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        super(entries, ordinal);<a name="line.461"></a>
-<span class="sourceLineNo">462</span>        this.ordinal = ordinal;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>      @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      public Integer call() throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        return ordinal;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      }<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    }<a name="line.469"></a>
-<span class="sourceLineNo">470</span><a name="line.470"></a>
-<span class="sourceLineNo">471</span>    protected class FailingDummyReplicator extends DummyReplicator {<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span>      public FailingDummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        super(entries, ordinal);<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
+<span class="sourceLineNo">460</span>    protected class DummyReplicator extends Replicator {<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>      private int ordinal;<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>      public DummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        super(entries, ordinal);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        this.ordinal = ordinal;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>      }<a name="line.467"></a>
+<span class="sourceLineNo">468</span><a name="line.468"></a>
+<span class="sourceLineNo">469</span>      @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      public Integer call() throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        return ordinal;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      }<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>    protected class FailingDummyReplicator extends DummyReplicator {<a name="line.475"></a>
 <span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>      @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      public Integer call() throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>        throw new IOException("Sample Exception: Failed to replicate.");<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      }<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>  public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    static int COUNT = 10;<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    @Override<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      try {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        // check row<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        doAssert(row);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      } catch (Exception e) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>        ex.set(e);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>      super.replicate(replicateContext);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>      replicated.set(replicateCount.get() &gt; COUNT); // first 10 times, we return false<a name="line.500"></a>
-<span class="sourceLineNo">501</span>      return replicated.get();<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    }<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span>  // return a WALEntry filter which only accepts "row", but not other rows<a name="line.505"></a>
-<span class="sourceLineNo">506</span>  public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.507"></a>
+<span class="sourceLineNo">477</span>      public FailingDummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        super(entries, ordinal);<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>      @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      public Integer call() throws IOException {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        throw new IOException("Sample Exception: Failed to replicate.");<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      }<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span>  public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    static int COUNT = 10;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>      try {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        // check row<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        doAssert(row);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>      } catch (Exception e) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        ex.set(e);<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      }<a name="line.499"></a>
+<span class="sourceLineNo">500</span><a name="line.500"></a>
+<span class="sourceLineNo">501</span>      super.replicate(replicateContext);<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>      replicated.set(replicateCount.get() &gt; COUNT); // first 10 times, we return false<a name="line.504"></a>
+<span class="sourceLineNo">505</span>      return replicated.get();<a name="line.505"></a>
+<span class="sourceLineNo">506</span>    }<a name="line.506"></a>
+<span class="sourceLineNo">507</span>  }<a name="line.507"></a>
 <span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span>    @Override<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      try {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        super.replicate(replicateContext);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>        doAssert(row);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      } catch (Exception e) {<a name="line.514"></a>
-<span class="sourceLineNo">515</span>        ex.set(e);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      }<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      return true;<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>    @Override<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    public WALEntryFilter getWALEntryfilter() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span>        public Entry filter(Entry entry) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>          ArrayList&lt;Cell&gt; cells = entry.getEdit().getCells();<a name="line.525"></a>
-<span class="sourceLineNo">526</span>          int size = cells.size();<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          for (int i = size-1; i &gt;= 0; i--) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>            Cell cell = cells.get(i);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>            if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.529"></a>
-<span class="sourceLineNo">530</span>              row, 0, row.length)) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span>              cells.remove(i);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>            }<a name="line.532"></a>
-<span class="sourceLineNo">533</span>          }<a name="line.533"></a>
-<span class="sourceLineNo">534</span>          return entry;<a name="line.534"></a>
-<span class="sourceLineNo">535</span>        }<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      });<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    }<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span>  public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    private static boolean passedEntry = false;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    public Entry filter(Entry entry) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>      passedEntry = true;<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      return entry;<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>    public static boolean hasPassedAnEntry(){<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      return passedEntry;<a name="line.549"></a>
+<span class="sourceLineNo">509</span>  // return a WALEntry filter which only accepts "row", but not other rows<a name="line.509"></a>
+<span class="sourceLineNo">510</span>  public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span>    @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      try {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        super.replicate(replicateContext);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        doAssert(row);<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      } catch (Exception e) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        ex.set(e);<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      }<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      return true;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>    }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span>    @Override<a name="line.524"></a>
+<span class="sourceLineNo">525</span>    public WALEntryFilter getWALEntryfilter() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public Entry filter(Entry entry) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>          ArrayList&lt;Cell&gt; cells = entry.getEdit().getCells();<a name="line.529"></a>
+<span class="sourceLineNo">530</span>          int size = cells.size();<a name="line.530"></a>
+<span class="sourceLineNo">531</span>          for (int i = size-1; i &gt;= 0; i--) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>            Cell cell = cells.get(i);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>            if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.533"></a>
+<span class="sourceLineNo">534</span>              row, 0, row.length)) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>              cells.remove(i);<a name="line.535"></a>
+<span class="sourceLineNo">536</span>            }<a name="line.536"></a>
+<span class="sourceLineNo">537</span>          }<a name="line.537"></a>
+<span class="sourceLineNo">538</span>          return entry;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        }<a name="line.539"></a>
+<span class="sourceLineNo">540</span>      });<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>  }<a name="line.542"></a>
+<span class="sourceLineNo">543</span><a name="line.543"></a>
+<span class="sourceLineNo">544</span>  public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.544"></a>
+<span class="sourceLineNo">545</span>    private static boolean passedEntry = false;<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    public Entry filter(Entry entry) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>      passedEntry = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      return entry;<a name="line.549"></a>
 <span class="sourceLineNo">550</span>    }<a name="line.550"></a>
-<span class="sourceLineNo">551</span>  }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span>  public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>    public static boolean hasPassedAnEntry(){<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      return passedEntry;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    }<a name="line.554"></a>
 <span class="sourceLineNo">555</span>  }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>}<a name="line.556"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span>  public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span>  }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>}<a name="line.560"></a>
 
 
 


[06/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html
index bee8222..7a938de 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.ReplicationEndpointWithWALEntryFilter.html
@@ -72,7 +72,7 @@
 <span class="sourceLineNo">064</span>/**<a name="line.64"></a>
 <span class="sourceLineNo">065</span> * Tests ReplicationSource and ReplicationEndpoint interactions<a name="line.65"></a>
 <span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@Category({ReplicationTests.class, MediumTests.class})<a name="line.67"></a>
+<span class="sourceLineNo">067</span>@Category({ ReplicationTests.class, MediumTests.class })<a name="line.67"></a>
 <span class="sourceLineNo">068</span>public class TestReplicationEndpoint extends TestReplicationBase {<a name="line.68"></a>
 <span class="sourceLineNo">069</span><a name="line.69"></a>
 <span class="sourceLineNo">070</span>  @ClassRule<a name="line.70"></a>
@@ -86,317 +86,317 @@
 <span class="sourceLineNo">078</span>  @BeforeClass<a name="line.78"></a>
 <span class="sourceLineNo">079</span>  public static void setUpBeforeClass() throws Exception {<a name="line.79"></a>
 <span class="sourceLineNo">080</span>    TestReplicationBase.setUpBeforeClass();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    admin.removePeer("2");<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  @AfterClass<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  public static void tearDownAfterClass() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    TestReplicationBase.tearDownAfterClass();<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    // check stop is called<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() &gt; 0);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  }<a name="line.90"></a>
-<span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>  @Before<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  public void setup() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    ReplicationEndpointForTest.contructedCount.set(0);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    ReplicationEndpointForTest.startedCount.set(0);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    ReplicationEndpointForTest.replicateCount.set(0);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    ReplicationEndpointForTest.lastEntries = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    final List&lt;RegionServerThread&gt; rsThreads =<a name="line.99"></a>
-<span class="sourceLineNo">100</span>        utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    for (RegionServerThread rs : rsThreads) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    // Wait for  all log roll to finish<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    utility1.waitFor(3000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      @Override<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      public boolean evaluate() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>        for (RegionServerThread rs : rsThreads) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span>            return false;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>          }<a name="line.111"></a>
-<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>        return true;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>      @Override<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      public String explainFailure() throws Exception {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        List&lt;String&gt; logRollInProgressRsList = new ArrayList&lt;&gt;();<a name="line.118"></a>
-<span class="sourceLineNo">119</span>        for (RegionServerThread rs : rsThreads) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>            logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.121"></a>
-<span class="sourceLineNo">122</span>          }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>        }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>        return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      }<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    });<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>  @Test<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  public void testCustomReplicationEndpoint() throws Exception {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    // test installing a custom replication endpoint other than the default one.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    admin.addPeer("testCustomReplicationEndpoint",<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.133"></a>
-<span class="sourceLineNo">134</span>            .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    // check whether the class has been constructed and started<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      public boolean evaluate() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        return ReplicationEndpointForTest.contructedCount.get() &gt;= numRegionServers;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      }<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    });<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      @Override<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      public boolean evaluate() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>        return ReplicationEndpointForTest.startedCount.get() &gt;= numRegionServers;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      }<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    });<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>    // now replicate some data.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    doPut(Bytes.toBytes("row42"));<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      public boolean evaluate() throws Exception {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      }<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    });<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>    doAssert(Bytes.toBytes("row42"));<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>    admin.removePeer("testCustomReplicationEndpoint");<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>  @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    int peerCount = admin.getPeersCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    admin.addPeer(id,<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.175"></a>
-<span class="sourceLineNo">176</span>        .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    // debug.  Peer needs to be up for the edit to make it across. This wait on<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    // peer count seems to be a hack that has us not progress till peer is up.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    if (admin.getPeersCount() &lt;= peerCount) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      Threads.sleep(100);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    // now replicate some data<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    doPut(row);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      public boolean evaluate() throws Exception {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        // only send over one edit.<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        LOG.info("count=" + count);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>        return ReplicationEndpointReturningFalse.replicated.get();<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    });<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      throw ReplicationEndpointReturningFalse.ex.get();<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>    admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.201"></a>
-<span class="sourceLineNo">202</span>  }<a name="line.202"></a>
-<span class="sourceLineNo">203</span><a name="line.203"></a>
-<span class="sourceLineNo">204</span>  @Test<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  public void testInterClusterReplication() throws Exception {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    final String id = "testInterClusterReplication";<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>    List&lt;HRegion&gt; regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    int totEdits = 0;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>    // Make sure edits are spread across regions because we do region based batching<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    // before shipping edits.<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    for(HRegion region: regions) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      RegionInfo hri = region.getRegionInfo();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      byte[] row = hri.getStartKey();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      for (int i = 0; i &lt; 100; i++) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        if (row.length &gt; 0) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>          Put put = new Put(row);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          put.addColumn(famName, row, row);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          region.put(put);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>          totEdits++;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        }<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      }<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>    admin.addPeer(id,<a name="line.226"></a>
-<span class="sourceLineNo">227</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.227"></a>
-<span class="sourceLineNo">228</span>            .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        null);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>    final int numEdits = totEdits;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      public boolean evaluate() throws Exception {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>      @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      public String explainFailure() throws Exception {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.240"></a>
-<span class="sourceLineNo">241</span>            + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>        return failure;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      }<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    });<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>    admin.removePeer("testInterClusterReplication");<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    utility1.deleteTableData(tableName);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  @Test<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.252"></a>
-<span class="sourceLineNo">253</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    //test that we can create mutliple WALFilters reflectively<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        EverythingPassesWALEntryFilter.class.getName() +<a name="line.256"></a>
-<span class="sourceLineNo">257</span>            "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    // now replicate some data.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      doPut(connection, Bytes.toBytes("row1"));<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      doPut(connection, row);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      doPut(connection, Bytes.toBytes("row2"));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      public boolean evaluate() throws Exception {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    });<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>    Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    //make sure our reflectively created filter is in the filter chain<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span>  @Test (expected=IOException.class)<a name="line.279"></a>
-<span class="sourceLineNo">280</span>  public void testWALEntryFilterAddValidation() throws Exception {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    //test that we can create mutliple WALFilters reflectively<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        "IAmNotARealWalEntryFilter");<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  }<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span>  @Test (expected=IOException.class)<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.291"></a>
-<span class="sourceLineNo">292</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    //test that we can create mutliple WALFilters reflectively<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.294"></a>
-<span class="sourceLineNo">295</span>        "IAmNotARealWalEntryFilter");<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>  }<a name="line.297"></a>
+<span class="sourceLineNo">081</span>    numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  @AfterClass<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  public static void tearDownAfterClass() throws Exception {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    TestReplicationBase.tearDownAfterClass();<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    // check stop is called<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() &gt; 0);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>  @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  public void setup() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    ReplicationEndpointForTest.contructedCount.set(0);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    ReplicationEndpointForTest.startedCount.set(0);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    ReplicationEndpointForTest.replicateCount.set(0);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    ReplicationEndpointForTest.lastEntries = null;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    final List&lt;RegionServerThread&gt; rsThreads =<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    for (RegionServerThread rs : rsThreads) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    // Wait for  all log roll to finish<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    utility1.waitFor(3000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      public boolean evaluate() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        for (RegionServerThread rs : rsThreads) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>            return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>          }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        return true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>      @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      public String explainFailure() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        List&lt;String&gt; logRollInProgressRsList = new ArrayList&lt;&gt;();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        for (RegionServerThread rs : rsThreads) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>            logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.120"></a>
+<span class="sourceLineNo">121</span>          }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    });<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>  @Test<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  public void testCustomReplicationEndpoint() throws Exception {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // test installing a custom replication endpoint other than the default one.<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    admin.addPeer("testCustomReplicationEndpoint",<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.132"></a>
+<span class="sourceLineNo">133</span>            .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>    // check whether the class has been constructed and started<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      public boolean evaluate() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        return ReplicationEndpointForTest.contructedCount.get() &gt;= numRegionServers;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    });<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      public boolean evaluate() throws Exception {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        return ReplicationEndpointForTest.startedCount.get() &gt;= numRegionServers;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    });<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    // now replicate some data.<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    doPut(Bytes.toBytes("row42"));<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      public boolean evaluate() throws Exception {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    });<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>    doAssert(Bytes.toBytes("row42"));<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>    admin.removePeer("testCustomReplicationEndpoint");<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>  @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    int peerCount = admin.getPeersCount();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    admin.addPeer(id,<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    // debug.  Peer needs to be up for the edit to make it across. This wait on<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    // peer count seems to be a hack that has us not progress till peer is up.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    if (admin.getPeersCount() &lt;= peerCount) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      Threads.sleep(100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    // now replicate some data<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    doPut(row);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      public boolean evaluate() throws Exception {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        // only send over one edit.<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        LOG.info("count=" + count);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        return ReplicationEndpointReturningFalse.replicated.get();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    });<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      throw ReplicationEndpointReturningFalse.ex.get();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    }<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>    admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  public void testInterClusterReplication() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    final String id = "testInterClusterReplication";<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>    List&lt;HRegion&gt; regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    int totEdits = 0;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>    // Make sure edits are spread across regions because we do region based batching<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    // before shipping edits.<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    for(HRegion region: regions) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      RegionInfo hri = region.getRegionInfo();<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      byte[] row = hri.getStartKey();<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      for (int i = 0; i &lt; 100; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        if (row.length &gt; 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          Put put = new Put(row);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>          put.addColumn(famName, row, row);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          region.put(put);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>          totEdits++;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>    admin.addPeer(id,<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.226"></a>
+<span class="sourceLineNo">227</span>            .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        null);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>    final int numEdits = totEdits;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      public boolean evaluate() throws Exception {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>      @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      public String explainFailure() throws Exception {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.239"></a>
+<span class="sourceLineNo">240</span>            + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        return failure;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    });<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>    admin.removePeer("testInterClusterReplication");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    utility1.deleteTableData(tableName);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>  @Test<a name="line.249"></a>
+<span class="sourceLineNo">250</span>  public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    //test that we can create mutliple WALFilters reflectively<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        EverythingPassesWALEntryFilter.class.getName() +<a name="line.255"></a>
+<span class="sourceLineNo">256</span>            "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    // now replicate some data.<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      doPut(connection, Bytes.toBytes("row1"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      doPut(connection, row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      doPut(connection, Bytes.toBytes("row2"));<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      public boolean evaluate() throws Exception {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      }<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    });<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span>    Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    //make sure our reflectively created filter is in the filter chain<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>  @Test (expected=IOException.class)<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  public void testWALEntryFilterAddValidation() throws Exception {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    //test that we can create mutliple WALFilters reflectively<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        "IAmNotARealWalEntryFilter");<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>  @Test (expected=IOException.class)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>  public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    //test that we can create mutliple WALFilters reflectively<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        "IAmNotARealWalEntryFilter");<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>  }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
 <span class="sourceLineNo">298</span><a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>  @Test<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  public void testMetricsSourceBaseSourcePassthrough(){<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    /*<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    allows for custom JMX metrics.<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    the two layers of wrapping to the actual BaseSource.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    */<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    String id = "id";<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>    MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    String gaugeName = "gauge";<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    String singleGaugeName = "source.id." + gaugeName;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    String globalGaugeName = "source." + gaugeName;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    long delta = 1;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    String counterName = "counter";<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    String singleCounterName = "source.id." + counterName;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    String globalCounterName = "source." + counterName;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    long count = 2;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    source.decGauge(gaugeName, delta);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    source.getMetricsContext();<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    source.getMetricsDescription();<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    source.getMetricsJmxContext();<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    source.getMetricsName();<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    source.incCounters(counterName, count);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    source.incGauge(gaugeName, delta);<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    source.init();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    source.removeMetric(gaugeName);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    source.setGauge(gaugeName, delta);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    source.updateHistogram(counterName, count);<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    verify(globalRms).getMetricsContext();<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    verify(globalRms).getMetricsJmxContext();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    verify(globalRms).getMetricsName();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    verify(singleRms).incCounters(singleCounterName, count);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    verify(globalRms).incCounters(globalCounterName, count);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    verify(globalRms).init();<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    verify(singleRms).removeMetric(singleGaugeName);<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    verify(globalRms).removeMetric(globalGaugeName);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    verify(globalRms).updateHistogram(globalCounterName, count);<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>  private void doPut(byte[] row) throws IOException {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      doPut(connection, row);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>  private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    try (Table t = connection.getTable(tableName)) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      Put put = new Put(row);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      put.addColumn(famName, row, row);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      t.put(put);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>  private static void doAssert(byte[] row) throws Exception {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      return; // first call<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    List&lt;Cell&gt; cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    Assert.assertEquals(1, cells.size());<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      cells.get(0).getRowLength(), row, 0, row.length));<a name="line.380"></a>
-<span class="sourceLineNo">381</span>  }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span>  public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    static UUID uuid = UUID.randomUUID();<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    static AtomicInteger contructedCount = new AtomicInteger();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    static AtomicInteger startedCount = new AtomicInteger();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    static volatile List&lt;Entry&gt; lastEntries = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>    public ReplicationEndpointForTest() {<a name="line.391"></a>
+<span class="sourceLineNo">299</span>  @Test<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  public void testMetricsSourceBaseSourcePassthrough(){<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    /*<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    allows for custom JMX metrics.<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    the two layers of wrapping to the actual BaseSource.<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    String id = "id";<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>    MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    String gaugeName = "gauge";<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    String singleGaugeName = "source.id." + gaugeName;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    String globalGaugeName = "source." + gaugeName;<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    long delta = 1;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    String counterName = "counter";<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    String singleCounterName = "source.id." + counterName;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    String globalCounterName = "source." + counterName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    long count = 2;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    source.decGauge(gaugeName, delta);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    source.getMetricsContext();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    source.getMetricsDescription();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    source.getMetricsJmxContext();<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    source.getMetricsName();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    source.incCounters(counterName, count);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    source.incGauge(gaugeName, delta);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    source.init();<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    source.removeMetric(gaugeName);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    source.setGauge(gaugeName, delta);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    source.updateHistogram(counterName, count);<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>    verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    verify(globalRms).getMetricsContext();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    verify(globalRms).getMetricsJmxContext();<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    verify(globalRms).getMetricsName();<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    verify(singleRms).incCounters(singleCounterName, count);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    verify(globalRms).incCounters(globalCounterName, count);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    verify(globalRms).init();<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    verify(singleRms).removeMetric(singleGaugeName);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    verify(globalRms).removeMetric(globalGaugeName);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    verify(globalRms).updateHistogram(globalCounterName, count);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>  private void doPut(byte[] row) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      doPut(connection, row);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>  private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    try (Table t = connection.getTable(tableName)) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      Put put = new Put(row);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      put.addColumn(famName, row, row);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      t.put(put);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>  private static void doAssert(byte[] row) throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      return; // first call<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    List&lt;Cell&gt; cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    Assert.assertEquals(1, cells.size());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      cells.get(0).getRowLength(), row, 0, row.length));<a name="line.379"></a>
+<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>  public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    static UUID uuid = UUID.randomUUID();<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    static AtomicInteger contructedCount = new AtomicInteger();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    static AtomicInteger startedCount = new AtomicInteger();<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    static volatile List&lt;Entry&gt; lastEntries = null;<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>    public ReplicationEndpointForTest() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      replicateCount.set(0);<a name="line.391"></a>
 <span class="sourceLineNo">392</span>      contructedCount.incrementAndGet();<a name="line.392"></a>
 <span class="sourceLineNo">393</span>    }<a name="line.393"></a>
 <span class="sourceLineNo">394</span><a name="line.394"></a>
@@ -441,127 +441,131 @@
 <span class="sourceLineNo">433</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.433"></a>
 <span class="sourceLineNo">434</span>    static boolean failedOnce;<a name="line.434"></a>
 <span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      boolean success = super.replicate(replicateContext);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      if (success) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        replicateCount.addAndGet(replicateContext.entries.size());<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      }<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      return success;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>    @Override<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    protected Replicator createReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      // Fail only once, we don't want to slow down the test.<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      if (failedOnce) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>        return new DummyReplicator(entries, ordinal);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      } else {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>        failedOnce = true;<a name="line.451"></a>
-<span class="sourceLineNo">452</span>        return new FailingDummyReplicator(entries, ordinal);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
-<span class="sourceLineNo">455</span><a name="line.455"></a>
-<span class="sourceLineNo">456</span>    protected class DummyReplicator extends Replicator {<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>      private int ordinal;<a name="line.458"></a>
+<span class="sourceLineNo">436</span>    public InterClusterReplicationEndpointForTest() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>      replicateCount.set(0);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>    @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      boolean success = super.replicate(replicateContext);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      if (success) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        replicateCount.addAndGet(replicateContext.entries.size());<a name="line.444"></a>
+<span class="sourceLineNo">445</span>      }<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      return success;<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span>    @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    protected Replicator createReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      // Fail only once, we don't want to slow down the test.<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      if (failedOnce) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        return new DummyReplicator(entries, ordinal);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        failedOnce = true;<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        return new FailingDummyReplicator(entries, ordinal);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      }<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    }<a name="line.458"></a>
 <span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>      public DummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        super(entries, ordinal);<a name="line.461"></a>
-<span class="sourceLineNo">462</span>        this.ordinal = ordinal;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>      @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      public Integer call() throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        return ordinal;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      }<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    }<a name="line.469"></a>
-<span class="sourceLineNo">470</span><a name="line.470"></a>
-<span class="sourceLineNo">471</span>    protected class FailingDummyReplicator extends DummyReplicator {<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span>      public FailingDummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        super(entries, ordinal);<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
+<span class="sourceLineNo">460</span>    protected class DummyReplicator extends Replicator {<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>      private int ordinal;<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>      public DummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        super(entries, ordinal);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        this.ordinal = ordinal;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>      }<a name="line.467"></a>
+<span class="sourceLineNo">468</span><a name="line.468"></a>
+<span class="sourceLineNo">469</span>      @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      public Integer call() throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        return ordinal;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      }<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>    protected class FailingDummyReplicator extends DummyReplicator {<a name="line.475"></a>
 <span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>      @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      public Integer call() throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>        throw new IOException("Sample Exception: Failed to replicate.");<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      }<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>  public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    static int COUNT = 10;<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    @Override<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      try {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        // check row<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        doAssert(row);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      } catch (Exception e) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>        ex.set(e);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>      super.replicate(replicateContext);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>      replicated.set(replicateCount.get() &gt; COUNT); // first 10 times, we return false<a name="line.500"></a>
-<span class="sourceLineNo">501</span>      return replicated.get();<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    }<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span>  // return a WALEntry filter which only accepts "row", but not other rows<a name="line.505"></a>
-<span class="sourceLineNo">506</span>  public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.507"></a>
+<span class="sourceLineNo">477</span>      public FailingDummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        super(entries, ordinal);<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>      @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      public Integer call() throws IOException {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        throw new IOException("Sample Exception: Failed to replicate.");<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      }<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span>  public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    static int COUNT = 10;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>      try {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        // check row<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        doAssert(row);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>      } catch (Exception e) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        ex.set(e);<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      }<a name="line.499"></a>
+<span class="sourceLineNo">500</span><a name="line.500"></a>
+<span class="sourceLineNo">501</span>      super.replicate(replicateContext);<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>      replicated.set(replicateCount.get() &gt; COUNT); // first 10 times, we return false<a name="line.504"></a>
+<span class="sourceLineNo">505</span>      return replicated.get();<a name="line.505"></a>
+<span class="sourceLineNo">506</span>    }<a name="line.506"></a>
+<span class="sourceLineNo">507</span>  }<a name="line.507"></a>
 <span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span>    @Override<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      try {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        super.replicate(replicateContext);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>        doAssert(row);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      } catch (Exception e) {<a name="line.514"></a>
-<span class="sourceLineNo">515</span>        ex.set(e);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      }<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      return true;<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>    @Override<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    public WALEntryFilter getWALEntryfilter() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span>        public Entry filter(Entry entry) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>          ArrayList&lt;Cell&gt; cells = entry.getEdit().getCells();<a name="line.525"></a>
-<span class="sourceLineNo">526</span>          int size = cells.size();<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          for (int i = size-1; i &gt;= 0; i--) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>            Cell cell = cells.get(i);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>            if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.529"></a>
-<span class="sourceLineNo">530</span>              row, 0, row.length)) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span>              cells.remove(i);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>            }<a name="line.532"></a>
-<span class="sourceLineNo">533</span>          }<a name="line.533"></a>
-<span class="sourceLineNo">534</span>          return entry;<a name="line.534"></a>
-<span class="sourceLineNo">535</span>        }<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      });<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    }<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span>  public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    private static boolean passedEntry = false;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    public Entry filter(Entry entry) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>      passedEntry = true;<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      return entry;<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>    public static boolean hasPassedAnEntry(){<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      return passedEntry;<a name="line.549"></a>
+<span class="sourceLineNo">509</span>  // return a WALEntry filter which only accepts "row", but not other rows<a name="line.509"></a>
+<span class="sourceLineNo">510</span>  public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span>    @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      try {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        super.replicate(replicateContext);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        doAssert(row);<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      } catch (Exception e) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        ex.set(e);<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      }<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      return true;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>    }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span>    @Override<a name="line.524"></a>
+<span class="sourceLineNo">525</span>    public WALEntryFilter getWALEntryfilter() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public Entry filter(Entry entry) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>          ArrayList&lt;Cell&gt; cells = entry.getEdit().getCells();<a name="line.529"></a>
+<span class="sourceLineNo">530</span>          int size = cells.size();<a name="line.530"></a>
+<span class="sourceLineNo">531</span>          for (int i = size-1; i &gt;= 0; i--) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>            Cell cell = cells.get(i);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>            if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.533"></a>
+<span class="sourceLineNo">534</span>              row, 0, row.length)) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>              cells.remove(i);<a name="line.535"></a>
+<span class="sourceLineNo">536</span>            }<a name="line.536"></a>
+<span class="sourceLineNo">537</span>          }<a name="line.537"></a>
+<span class="sourceLineNo">538</span>          return entry;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        }<a name="line.539"></a>
+<span class="sourceLineNo">540</span>      });<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>  }<a name="line.542"></a>
+<span class="sourceLineNo">543</span><a name="line.543"></a>
+<span class="sourceLineNo">544</span>  public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.544"></a>
+<span class="sourceLineNo">545</span>    private static boolean passedEntry = false;<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    public Entry filter(Entry entry) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>      passedEntry = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      return entry;<a name="line.549"></a>
 <span class="sourceLineNo">550</span>    }<a name="line.550"></a>
-<span class="sourceLineNo">551</span>  }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span>  public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>    public static boolean hasPassedAnEntry(){<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      return passedEntry;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    }<a name="line.554"></a>
 <span class="sourceLineNo">555</span>  }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>}<a name="line.556"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span>  public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span>  }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>}<a name="line.560"></a>
 
 
 


[22/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html
new file mode 100644
index 0000000..6ebf6d8
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html
@@ -0,0 +1,362 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TestReplicationKillMasterRSWithSeparateOldWALs (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TestReplicationKillMasterRSWithSeparateOldWALs (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestReplicationKillMasterRSWithSeparateOldWALs.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" target="_top">Frames</a></li>
+<li><a href="TestReplicationKillMasterRSWithSeparateOldWALs.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.replication</div>
+<h2 title="Class TestReplicationKillMasterRSWithSeparateOldWALs" class="title">Class TestReplicationKillMasterRSWithSeparateOldWALs</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">org.apache.hadoop.hbase.replication.TestReplicationBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">org.apache.hadoop.hbase.replication.TestReplicationKillRS</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.replication.TestReplicationKillMasterRSWithSeparateOldWALs</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#line.31">TestReplicationKillMasterRSWithSeparateOldWALs</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
 ">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#TestReplicationKillMasterRSWithSeparateOldWALs--">TestReplicationKillMasterRSWithSeparateOldWALs</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#killOneMasterRS--">killOneMasterRS</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#setUpBeforeClass--">setUpBeforeClass</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationKillRS">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html#loadTableAndKillRS-org.apache.hadoop.hbase.HBaseTestingUtility-">loadTableAndKillRS</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>
 , <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="CLASS_RULE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CLASS_RULE</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#line.34">CLASS_RULE</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TestReplicationKillMasterRSWithSeparateOldWALs--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TestReplicationKillMasterRSWithSeparateOldWALs</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#line.31">TestReplicationKillMasterRSWithSeparateOldWALs</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setUpBeforeClass--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUpBeforeClass</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#line.38">setUpBeforeClass</a>()
+                             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="killOneMasterRS--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>killOneMasterRS</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#line.44">killOneMasterRS</a>()
+                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestReplicationKillMasterRSWithSeparateOldWALs.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" target="_top">Frames</a></li>
+<li><a href="TestReplicationKillMasterRSWithSeparateOldWALs.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillRS.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillRS.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillRS.html
index 3c00ef4..4be129d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillRS.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillRS.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>Direct Known Subclasses:</dt>
-<dd><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRS</a></dd>
+<dd><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSWithSeparateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRSWithSeparateOldWALs</a></dd>
 </dl>
 <hr>
 <br>
@@ -152,7 +152,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
 .html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
 ">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -204,7 +204,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
 aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterC
 lass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -327,7 +327,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html
index ed2f0ca..98af51b 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" target="_top">Frames</a></li>
@@ -119,7 +119,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#line.35">TestReplicationKillSlaveRS</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#line.32">TestReplicationKillSlaveRS</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></pre>
 <div class="block">Runs the TestReplicationKillRS test and selects the RS to kill in the slave cluster
  Do not add other tests in this class.</div>
@@ -151,7 +151,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase
 .html#utility1">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
 ">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -201,7 +201,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">w
 aitForReplication</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterC
 lass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -230,7 +230,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#line.38">CLASS_RULE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#line.35">CLASS_RULE</a></pre>
 </li>
 </ul>
 </li>
@@ -247,7 +247,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestReplicationKillSlaveRS</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#line.35">TestReplicationKillSlaveRS</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#line.32">TestReplicationKillSlaveRS</a>()</pre>
 </li>
 </ul>
 </li>
@@ -264,7 +264,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>killOneSlaveRS</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#line.42">killOneSlaveRS</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#line.39">killOneSlaveRS</a>()
                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -301,7 +301,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicat
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html
new file mode 100644
index 0000000..827c68a
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html
@@ -0,0 +1,362 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TestReplicationKillSlaveRSWithSeparateOldWALs (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TestReplicationKillSlaveRSWithSeparateOldWALs (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestReplicationKillSlaveRSWithSeparateOldWALs.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" target="_top">Frames</a></li>
+<li><a href="TestReplicationKillSlaveRSWithSeparateOldWALs.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.replication</div>
+<h2 title="Class TestReplicationKillSlaveRSWithSeparateOldWALs" class="title">Class TestReplicationKillSlaveRSWithSeparateOldWALs</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">org.apache.hadoop.hbase.replication.TestReplicationBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">org.apache.hadoop.hbase.replication.TestReplicationKillRS</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.replication.TestReplicationKillSlaveRSWithSeparateOldWALs</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#line.31">TestReplicationKillSlaveRSWithSeparateOldWALs</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIES">NB_RETRIES</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1
 ">utility1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#TestReplicationKillSlaveRSWithSeparateOldWALs--">TestReplicationKillSlaveRSWithSeparateOldWALs</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#killOneSlaveRS--">killOneSlaveRS</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#setUpBeforeClass--">setUpBeforeClass</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationKillRS">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillRS.html#loadTableAndKillRS-org.apache.hadoop.hbase.HBaseTestingUtility-">loadTableAndKillRS</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.replication.TestReplicationBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>
 , <a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="CLASS_RULE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CLASS_RULE</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#line.34">CLASS_RULE</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TestReplicationKillSlaveRSWithSeparateOldWALs--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TestReplicationKillSlaveRSWithSeparateOldWALs</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#line.31">TestReplicationKillSlaveRSWithSeparateOldWALs</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setUpBeforeClass--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUpBeforeClass</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#line.38">setUpBeforeClass</a>()
+                             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="killOneSlaveRS--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>killOneSlaveRS</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#line.44">killOneSlaveRS</a>()
+                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestReplicationKillSlaveRSWithSeparateOldWALs.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" target="_top">Frames</a></li>
+<li><a href="TestReplicationKillSlaveRSWithSeparateOldWALs.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html
index b6811ff..dabbc5f 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -262,7 +262,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">


[33/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html b/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html
index f3f0a64..8526169 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html
@@ -104,27 +104,39 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumReadRequestsExceeded-long-">throwNumReadRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumRequestsExceeded-long-">throwNumRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwNumWriteRequestsExceeded-long-">throwNumWriteRequestsExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwReadSizeExceeded-long-">throwReadSizeExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwRequestSizeExceeded-long-">throwRequestSizeExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long&nbsp;waitInterval)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ThrottlingException.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded</a></span>(long&nbsp;waitInterval)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 </tbody>
 </table>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/package-frame.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/package-frame.html b/apidocs/org/apache/hadoop/hbase/quotas/package-frame.html
index 9956ced..9346f74 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/package-frame.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/package-frame.html
@@ -22,6 +22,7 @@
 <ul title="Enums">
 <li><a href="QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">QuotaScope</a></li>
 <li><a href="QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">QuotaType</a></li>
+<li><a href="RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">RpcThrottlingException.Type</a></li>
 <li><a href="SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">SpaceViolationPolicy</a></li>
 <li><a href="ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">ThrottleType</a></li>
 <li><a href="ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">ThrottlingException.Type</a></li>
@@ -29,6 +30,7 @@
 <h2 title="Exceptions">Exceptions</h2>
 <ul title="Exceptions">
 <li><a href="QuotaExceededException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">QuotaExceededException</a></li>
+<li><a href="RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">RpcThrottlingException</a></li>
 <li><a href="SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">SpaceLimitingException</a></li>
 <li><a href="ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">ThrottlingException</a></li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/package-summary.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/package-summary.html b/apidocs/org/apache/hadoop/hbase/quotas/package-summary.html
index 50b882c..b8e760e 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/package-summary.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/package-summary.html
@@ -126,18 +126,22 @@
 </td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a></td>
 <td class="colLast">
 <div class="block">Enumeration that represents the action HBase will take when a space quota is violated.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottleType</a></td>
 <td class="colLast">
 <div class="block">Describe the Throttle Type.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
@@ -159,15 +163,21 @@
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></td>
+<td class="colLast">
+<div class="block">Describe the throttling result.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitingException.html" title="class in org.apache.hadoop.hbase.quotas">SpaceLimitingException</a></td>
 <td class="colLast">
 <div class="block">An Exception that is thrown when a space quota is in violation.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">ThrottlingException</a></td>
-<td class="colLast">
-<div class="block">Describe the throttling result.</div>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
 </td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/package-tree.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/package-tree.html b/apidocs/org/apache/hadoop/hbase/quotas/package-tree.html
index 57a5a25..8ae00fb 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -103,6 +103,7 @@
 </li>
 </ul>
 </li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException</span></a></li>
 </ul>
 </li>
 </ul>
@@ -125,6 +126,7 @@
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/org/apache/hadoop/hbase/quotas/package-use.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/package-use.html b/apidocs/org/apache/hadoop/hbase/quotas/package-use.html
index a91b149..c9c3746 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/package-use.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/package-use.html
@@ -158,6 +158,14 @@
 </td>
 </tr>
 <tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html#org.apache.hadoop.hbase.quotas">RpcThrottlingException</a>
+<div class="block">Describe the throttling result.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.Type.html#org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/SpaceViolationPolicy.html#org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a>
 <div class="block">Enumeration that represents the action HBase will take when a space quota is violated.</div>
 </td>
@@ -169,11 +177,15 @@
 </tr>
 <tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.html#org.apache.hadoop.hbase.quotas">ThrottlingException</a>
-<div class="block">Describe the throttling result.</div>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">replaced by <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><code>RpcThrottlingException</code></a> since hbase-2.0.0.</span></div>
+</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html#org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/quotas/class-use/ThrottlingException.Type.html#org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
 </tr>
 </tbody>
 </table>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/apidocs/overview-tree.html b/apidocs/overview-tree.html
index f167b63..7cad833 100644
--- a/apidocs/overview-tree.html
+++ b/apidocs/overview-tree.html
@@ -622,6 +622,7 @@
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RegionOfflineException.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionOfflineException</span></a></li>
 </ul>
 </li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/StoppedRpcClientException.html" title="class in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">StoppedRpcClientException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TableInfoMissingException.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">TableInfoMissingException</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/WrongRowIOException.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">WrongRowIOException</span></a></li>
@@ -918,6 +919,7 @@
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/serialized-form.html
----------------------------------------------------------------------
diff --git a/apidocs/serialized-form.html b/apidocs/serialized-form.html
index 007397a..f6020ff 100644
--- a/apidocs/serialized-form.html
+++ b/apidocs/serialized-form.html
@@ -706,6 +706,26 @@
 </a>
 <h3>Class <a href="org/apache/hadoop/hbase/quotas/QuotaExceededException.html" title="class in org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas.QuotaExceededException</a> extends <a href="org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a> implements Serializable</h3>
 </li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.quotas.RpcThrottlingException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">org.apache.hadoop.hbase.quotas.RpcThrottlingException</a> extends <a href="org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a> implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>waitInterval</h4>
+<pre>long waitInterval</pre>
+</li>
+<li class="blockListLast">
+<h4>type</h4>
+<pre><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">RpcThrottlingException.Type</a> type</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.quotas.SpaceLimitingException">
 <!--   -->
 </a>
@@ -741,10 +761,12 @@
 <li class="blockList">
 <h4>waitInterval</h4>
 <pre>long waitInterval</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 <li class="blockListLast">
 <h4>type</h4>
 <pre><a href="org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a> type</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html b/apidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
new file mode 100644
index 0000000..d589905
--- /dev/null
+++ b/apidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
@@ -0,0 +1,203 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one or more contributor license<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * agreements. See the NOTICE file distributed with this work for additional information regarding<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * "License"); you may not use this file except in compliance with the License. You may obtain a<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * law or agreed to in writing, software distributed under the License is distributed on an "AS IS"<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * for the specific language governing permissions and limitations under the License.<a name="line.9"></a>
+<span class="sourceLineNo">010</span> */<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.apache.hadoop.hbase.quotas;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import java.util.regex.Matcher;<a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.regex.Pattern;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.apache.hadoop.util.StringUtils;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Describe the throttling result. TODO: At some point this will be handled on the client side to<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * prevent operation to go on the server if the waitInterval is greater than the one got as result<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * of this exception.<a name="line.24"></a>
+<span class="sourceLineNo">025</span> */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>@InterfaceAudience.Public<a name="line.26"></a>
+<span class="sourceLineNo">027</span>public class RpcThrottlingException extends HBaseIOException {<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>  @InterfaceAudience.Public<a name="line.29"></a>
+<span class="sourceLineNo">030</span>  public enum Type {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>    NumRequestsExceeded, RequestSizeExceeded, NumReadRequestsExceeded, NumWriteRequestsExceeded,<a name="line.31"></a>
+<span class="sourceLineNo">032</span>    WriteSizeExceeded, ReadSizeExceeded,<a name="line.32"></a>
+<span class="sourceLineNo">033</span>  }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>  private static final String[] MSG_TYPE =<a name="line.35"></a>
+<span class="sourceLineNo">036</span>      new String[] { "number of requests exceeded", "request size limit exceeded",<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        "number of read requests exceeded", "number of write requests exceeded",<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        "write size limit exceeded", "read size limit exceeded", };<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>  private static final String MSG_WAIT = " - wait ";<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>  private long waitInterval;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>  private Type type;<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>  public RpcThrottlingException(String msg) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    super(msg);<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>    // Dirty workaround to get the information after<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    for (int i = 0; i &lt; MSG_TYPE.length; ++i) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>      int index = msg.indexOf(MSG_TYPE[i]);<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      if (index &gt;= 0) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        type = Type.values()[i];<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        waitInterval = timeFromString(waitTimeStr);<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        break;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      }<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    }<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  }<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>  public RpcThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    super(msg);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    this.waitInterval = waitInterval;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    this.type = type;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  }<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  public Type getType() {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    return this.type;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  public long getWaitInterval() {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    return this.waitInterval;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>  public static void throwNumRequestsExceeded(final long waitInterval) throws<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      RpcThrottlingException {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>  public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      throws RpcThrottlingException {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>  public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.85"></a>
+<span class="sourceLineNo">086</span>      throws RpcThrottlingException {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>  public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      throws RpcThrottlingException {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>  public static void throwWriteSizeExceeded(final long waitInterval) throws RpcThrottlingException {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>  public static void throwReadSizeExceeded(final long waitInterval) throws RpcThrottlingException {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  }<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>  private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.103"></a>
+<span class="sourceLineNo">104</span>      throws RpcThrottlingException {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + StringUtils.formatTime(waitInterval);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    throw new RpcThrottlingException(type, waitInterval, msg);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  private static long timeFromString(String timeDiff) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    Pattern[] patterns =<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        new Pattern[] { Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.111"></a>
+<span class="sourceLineNo">112</span>            Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.112"></a>
+<span class="sourceLineNo">113</span>            Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec") };<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>    for (int i = 0; i &lt; patterns.length; ++i) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      Matcher m = patterns[i].matcher(timeDiff);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      if (m.find()) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        if (i &gt; 0) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>          time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        if (i &gt; 1) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>          time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        return time;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    }<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>    return -1;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  }<a name="line.130"></a>
+<span class="sourceLineNo">131</span>}<a name="line.131"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html b/apidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
new file mode 100644
index 0000000..d589905
--- /dev/null
+++ b/apidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
@@ -0,0 +1,203 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one or more contributor license<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * agreements. See the NOTICE file distributed with this work for additional information regarding<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * "License"); you may not use this file except in compliance with the License. You may obtain a<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * law or agreed to in writing, software distributed under the License is distributed on an "AS IS"<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * for the specific language governing permissions and limitations under the License.<a name="line.9"></a>
+<span class="sourceLineNo">010</span> */<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.apache.hadoop.hbase.quotas;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import java.util.regex.Matcher;<a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.regex.Pattern;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.apache.hadoop.util.StringUtils;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Describe the throttling result. TODO: At some point this will be handled on the client side to<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * prevent operation to go on the server if the waitInterval is greater than the one got as result<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * of this exception.<a name="line.24"></a>
+<span class="sourceLineNo">025</span> */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>@InterfaceAudience.Public<a name="line.26"></a>
+<span class="sourceLineNo">027</span>public class RpcThrottlingException extends HBaseIOException {<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>  @InterfaceAudience.Public<a name="line.29"></a>
+<span class="sourceLineNo">030</span>  public enum Type {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>    NumRequestsExceeded, RequestSizeExceeded, NumReadRequestsExceeded, NumWriteRequestsExceeded,<a name="line.31"></a>
+<span class="sourceLineNo">032</span>    WriteSizeExceeded, ReadSizeExceeded,<a name="line.32"></a>
+<span class="sourceLineNo">033</span>  }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>  private static final String[] MSG_TYPE =<a name="line.35"></a>
+<span class="sourceLineNo">036</span>      new String[] { "number of requests exceeded", "request size limit exceeded",<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        "number of read requests exceeded", "number of write requests exceeded",<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        "write size limit exceeded", "read size limit exceeded", };<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>  private static final String MSG_WAIT = " - wait ";<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>  private long waitInterval;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>  private Type type;<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>  public RpcThrottlingException(String msg) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    super(msg);<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>    // Dirty workaround to get the information after<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    for (int i = 0; i &lt; MSG_TYPE.length; ++i) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>      int index = msg.indexOf(MSG_TYPE[i]);<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      if (index &gt;= 0) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        type = Type.values()[i];<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        waitInterval = timeFromString(waitTimeStr);<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        break;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      }<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    }<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  }<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>  public RpcThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    super(msg);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    this.waitInterval = waitInterval;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    this.type = type;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  }<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  public Type getType() {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    return this.type;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  public long getWaitInterval() {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    return this.waitInterval;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>  public static void throwNumRequestsExceeded(final long waitInterval) throws<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      RpcThrottlingException {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>  public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      throws RpcThrottlingException {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>  public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.85"></a>
+<span class="sourceLineNo">086</span>      throws RpcThrottlingException {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>  public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      throws RpcThrottlingException {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>  public static void throwWriteSizeExceeded(final long waitInterval) throws RpcThrottlingException {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>  public static void throwReadSizeExceeded(final long waitInterval) throws RpcThrottlingException {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  }<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>  private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.103"></a>
+<span class="sourceLineNo">104</span>      throws RpcThrottlingException {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + StringUtils.formatTime(waitInterval);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    throw new RpcThrottlingException(type, waitInterval, msg);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  private static long timeFromString(String timeDiff) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    Pattern[] patterns =<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        new Pattern[] { Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.111"></a>
+<span class="sourceLineNo">112</span>            Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.112"></a>
+<span class="sourceLineNo">113</span>            Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec") };<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>    for (int i = 0; i &lt; patterns.length; ++i) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      Matcher m = patterns[i].matcher(timeDiff);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      if (m.find()) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        if (i &gt; 0) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>          time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        if (i &gt; 1) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>          time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        return time;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    }<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>    return -1;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  }<a name="line.130"></a>
+<span class="sourceLineNo">131</span>}<a name="line.131"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html b/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
index 985e2ef..c27a837 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
@@ -37,145 +37,148 @@
 <span class="sourceLineNo">029</span> * TODO: At some point this will be handled on the client side to prevent<a name="line.29"></a>
 <span class="sourceLineNo">030</span> * operation to go on the server if the waitInterval is grater than the one got<a name="line.30"></a>
 <span class="sourceLineNo">031</span> * as result of this exception.<a name="line.31"></a>
-<span class="sourceLineNo">032</span> */<a name="line.32"></a>
-<span class="sourceLineNo">033</span>@InterfaceAudience.Public<a name="line.33"></a>
-<span class="sourceLineNo">034</span>public class ThrottlingException extends QuotaExceededException {<a name="line.34"></a>
-<span class="sourceLineNo">035</span>  private static final long serialVersionUID = 1406576492085155743L;<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>  @InterfaceAudience.Public<a name="line.37"></a>
-<span class="sourceLineNo">038</span>  public enum Type {<a name="line.38"></a>
-<span class="sourceLineNo">039</span>    NumRequestsExceeded,<a name="line.39"></a>
-<span class="sourceLineNo">040</span>    RequestSizeExceeded,<a name="line.40"></a>
-<span class="sourceLineNo">041</span>    NumReadRequestsExceeded,<a name="line.41"></a>
-<span class="sourceLineNo">042</span>    NumWriteRequestsExceeded,<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    WriteSizeExceeded,<a name="line.43"></a>
-<span class="sourceLineNo">044</span>    ReadSizeExceeded,<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  }<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span>  private static final String[] MSG_TYPE = new String[] {<a name="line.47"></a>
-<span class="sourceLineNo">048</span>    "number of requests exceeded",<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    "request size limit exceeded",<a name="line.49"></a>
-<span class="sourceLineNo">050</span>    "number of read requests exceeded",<a name="line.50"></a>
-<span class="sourceLineNo">051</span>    "number of write requests exceeded",<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    "write size limit exceeded",<a name="line.52"></a>
-<span class="sourceLineNo">053</span>    "read size limit exceeded",<a name="line.53"></a>
-<span class="sourceLineNo">054</span>  };<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>  private static final String MSG_WAIT = " - wait ";<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>  private long waitInterval;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  private Type type;<a name="line.59"></a>
+<span class="sourceLineNo">032</span> *<a name="line.32"></a>
+<span class="sourceLineNo">033</span> * @deprecated  replaced by {@link RpcThrottlingException} since hbase-2.0.0.<a name="line.33"></a>
+<span class="sourceLineNo">034</span> */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>@Deprecated<a name="line.35"></a>
+<span class="sourceLineNo">036</span>@InterfaceAudience.Public<a name="line.36"></a>
+<span class="sourceLineNo">037</span>public class ThrottlingException extends QuotaExceededException {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>  private static final long serialVersionUID = 1406576492085155743L;<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>  @InterfaceAudience.Public<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  public enum Type {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    NumRequestsExceeded,<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    RequestSizeExceeded,<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    NumReadRequestsExceeded,<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    NumWriteRequestsExceeded,<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    WriteSizeExceeded,<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    ReadSizeExceeded,<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  }<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>  private static final String[] MSG_TYPE = new String[] {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    "number of requests exceeded",<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    "request size limit exceeded",<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    "number of read requests exceeded",<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    "number of write requests exceeded",<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    "write size limit exceeded",<a name="line.55"></a>
+<span class="sourceLineNo">056</span>    "read size limit exceeded",<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  };<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>  private static final String MSG_WAIT = " - wait ";<a name="line.59"></a>
 <span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>  public ThrottlingException(String msg) {<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    super(msg);<a name="line.62"></a>
+<span class="sourceLineNo">061</span>  private long waitInterval;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private Type type;<a name="line.62"></a>
 <span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>    // Dirty workaround to get the information after<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    for (int i = 0; i &lt; MSG_TYPE.length; ++i) {<a name="line.66"></a>
-<span class="sourceLineNo">067</span>      int index = msg.indexOf(MSG_TYPE[i]);<a name="line.67"></a>
-<span class="sourceLineNo">068</span>      if (index &gt;= 0) {<a name="line.68"></a>
-<span class="sourceLineNo">069</span>        String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.69"></a>
-<span class="sourceLineNo">070</span>        type = Type.values()[i];<a name="line.70"></a>
-<span class="sourceLineNo">071</span>        waitInterval = timeFromString(waitTimeStr);<a name="line.71"></a>
-<span class="sourceLineNo">072</span>        break;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>      }<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    }<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  public ThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    super(msg);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    this.waitInterval = waitInterval;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    this.type = type;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  }<a name="line.81"></a>
-<span class="sourceLineNo">082</span><a name="line.82"></a>
-<span class="sourceLineNo">083</span>  public Type getType() {<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    return this.type;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  }<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  public long getWaitInterval() {<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    return this.waitInterval;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>  public static void throwNumRequestsExceeded(final long waitInterval)<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      throws ThrottlingException {<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      throws ThrottlingException {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  }<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>  public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      throws ThrottlingException {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>  }<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      throws ThrottlingException {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  }<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  public static void throwWriteSizeExceeded(final long waitInterval)<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      throws ThrottlingException {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>  public static void throwReadSizeExceeded(final long waitInterval)<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      throws ThrottlingException {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  }<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>  private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      throws ThrottlingException {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + formatTime(waitInterval);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    throw new ThrottlingException(type, waitInterval, msg);<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>  public static String formatTime(long timeDiff) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    StringBuilder buf = new StringBuilder();<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    long hours = timeDiff / (60*60*1000);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    long rem = (timeDiff % (60*60*1000));<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    long minutes =  rem / (60*1000);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    rem = rem % (60*1000);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    float seconds = rem / 1000.0f;<a name="line.133"></a>
-<span class="sourceLineNo">134</span><a name="line.134"></a>
-<span class="sourceLineNo">135</span>    if (hours != 0){<a name="line.135"></a>
-<span class="sourceLineNo">136</span>      buf.append(hours);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      buf.append("hrs, ");<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    if (minutes != 0){<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      buf.append(minutes);<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      buf.append("mins, ");<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    }<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    buf.append(String.format("%.2fsec", seconds));<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    return buf.toString();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  }<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>  private static long timeFromString(String timeDiff) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    Pattern[] patterns = new Pattern[] {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec")<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    };<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>    for (int i = 0; i &lt; patterns.length; ++i) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      Matcher m = patterns[i].matcher(timeDiff);<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      if (m.find()) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        if (i &gt; 0) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>          time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.159"></a>
-<span class="sourceLineNo">160</span>        }<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        if (i &gt; 1) {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>          time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.162"></a>
+<span class="sourceLineNo">064</span>  public ThrottlingException(String msg) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    super(msg);<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>    // Dirty workaround to get the information after<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    for (int i = 0; i &lt; MSG_TYPE.length; ++i) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>      int index = msg.indexOf(MSG_TYPE[i]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      if (index &gt;= 0) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        type = Type.values()[i];<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        waitInterval = timeFromString(waitTimeStr);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        break;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      }<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    }<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>  public ThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    super(msg);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    this.waitInterval = waitInterval;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    this.type = type;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  }<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  public Type getType() {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    return this.type;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>  public long getWaitInterval() {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    return this.waitInterval;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>  public static void throwNumRequestsExceeded(final long waitInterval)<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      throws ThrottlingException {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>  public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      throws ThrottlingException {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      throws ThrottlingException {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      throws ThrottlingException {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>  public static void throwWriteSizeExceeded(final long waitInterval)<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      throws ThrottlingException {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>  public static void throwReadSizeExceeded(final long waitInterval)<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      throws ThrottlingException {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>  private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      throws ThrottlingException {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + formatTime(waitInterval);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    throw new ThrottlingException(type, waitInterval, msg);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span>  public static String formatTime(long timeDiff) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    StringBuilder buf = new StringBuilder();<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    long hours = timeDiff / (60*60*1000);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    long rem = (timeDiff % (60*60*1000));<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    long minutes =  rem / (60*1000);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    rem = rem % (60*1000);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    float seconds = rem / 1000.0f;<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>    if (hours != 0){<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      buf.append(hours);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      buf.append("hrs, ");<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    if (minutes != 0){<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      buf.append(minutes);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      buf.append("mins, ");<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    buf.append(String.format("%.2fsec", seconds));<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    return buf.toString();<a name="line.147"></a>
+<span class="sourceLineNo">148</span>  }<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>  private static long timeFromString(String timeDiff) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    Pattern[] patterns = new Pattern[] {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec")<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    };<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>    for (int i = 0; i &lt; patterns.length; ++i) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      Matcher m = patterns[i].matcher(timeDiff);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      if (m.find()) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        if (i &gt; 0) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>          time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.162"></a>
 <span class="sourceLineNo">163</span>        }<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        return time;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      }<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>    return -1;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>}<a name="line.170"></a>
+<span class="sourceLineNo">164</span>        if (i &gt; 1) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>          time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        return time;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>    return -1;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>  }<a name="line.172"></a>
+<span class="sourceLineNo">173</span>}<a name="line.173"></a>
 
 
 


[26/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index f47dad6..f16b9ea 100644
--- a/license.html
+++ b/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -491,7 +491,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index 3f0eb24..58fc8e7 100644
--- a/mail-lists.html
+++ b/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -341,7 +341,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/metrics.html
----------------------------------------------------------------------
diff --git a/metrics.html b/metrics.html
index afa4e31..490da77 100644
--- a/metrics.html
+++ b/metrics.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) Metrics
@@ -459,7 +459,7 @@ export HBASE_REGIONSERVER_OPTS=&quot;$HBASE_JMX_OPTS -Dcom.sun.management.jmxrem
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/old_news.html
----------------------------------------------------------------------
diff --git a/old_news.html b/old_news.html
index 0bfa6c1..0c1f0e9 100644
--- a/old_news.html
+++ b/old_news.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Old Apache HBase (TM) News
@@ -440,7 +440,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index 21d4a60..f723ad2 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -440,7 +440,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index 0c1021f..e7216c9 100644
--- a/plugins.html
+++ b/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -375,7 +375,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/poweredbyhbase.html
----------------------------------------------------------------------
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 3e27cfe..5eae55b 100644
--- a/poweredbyhbase.html
+++ b/poweredbyhbase.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Powered By Apache HBase™</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -769,7 +769,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index 93cc9fb..49e2dff 100644
--- a/project-info.html
+++ b/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -335,7 +335,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index bcb86c8..be01c4a 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -305,7 +305,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index f2750cd..90c835b 100644
--- a/project-summary.html
+++ b/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -331,7 +331,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/pseudo-distributed.html
----------------------------------------------------------------------
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index eeb44ed..068d457 100644
--- a/pseudo-distributed.html
+++ b/pseudo-distributed.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
 Running Apache HBase (TM) in pseudo-distributed mode
@@ -308,7 +308,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/replication.html
----------------------------------------------------------------------
diff --git a/replication.html b/replication.html
index 68e13f6..795adb9 100644
--- a/replication.html
+++ b/replication.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Apache HBase (TM) Replication
@@ -303,7 +303,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/resources.html
----------------------------------------------------------------------
diff --git a/resources.html b/resources.html
index 542f1e8..5a8ef50 100644
--- a/resources.html
+++ b/resources.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Other Apache HBase (TM) Resources</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -331,7 +331,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index a6b6fc3..f8acca2 100644
--- a/source-repository.html
+++ b/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -299,7 +299,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/sponsors.html
----------------------------------------------------------------------
diff --git a/sponsors.html b/sponsors.html
index d3534bb..73c64ba 100644
--- a/sponsors.html
+++ b/sponsors.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase™ Sponsors</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -333,7 +333,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/supportingprojects.html
----------------------------------------------------------------------
diff --git a/supportingprojects.html b/supportingprojects.html
index 7f5279c..e76d586 100644
--- a/supportingprojects.html
+++ b/supportingprojects.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Supporting Projects</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -520,7 +520,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index f5d2628..a707cb7 100644
--- a/team-list.html
+++ b/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -730,7 +730,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-frame.html b/testdevapidocs/allclasses-frame.html
index fdb2b9c..b514e7b 100644
--- a/testdevapidocs/allclasses-frame.html
+++ b/testdevapidocs/allclasses-frame.html
@@ -1802,8 +1802,10 @@
 <li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillMasterRSCompressed</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL.html" title="class in org.apache.hadoop.hbase.replication.multiwal" target="classFrame">TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleWAL.html" title="class in org.apache.hadoop.hbase.replication.multiwal" target="classFrame">TestReplicationKillMasterRSCompressedWithMultipleWAL</a></li>
+<li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillMasterRSWithSeparateOldWALs</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillRS</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillSlaveRS</a></li>
+<li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationKillSlaveRSWithSeparateOldWALs</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationPeerConfig</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationProcedureRetry</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.MockHMaster.html" title="class in org.apache.hadoop.hbase.replication" target="classFrame">TestReplicationProcedureRetry.MockHMaster</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-noframe.html b/testdevapidocs/allclasses-noframe.html
index b19abf8..8152b2a 100644
--- a/testdevapidocs/allclasses-noframe.html
+++ b/testdevapidocs/allclasses-noframe.html
@@ -1802,8 +1802,10 @@
 <li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSCompressed</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL.html" title="class in org.apache.hadoop.hbase.replication.multiwal">TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleWAL.html" title="class in org.apache.hadoop.hbase.replication.multiwal">TestReplicationKillMasterRSCompressedWithMultipleWAL</a></li>
+<li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSWithSeparateOldWALs</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRS</a></li>
+<li><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRSWithSeparateOldWALs</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationPeerConfig</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationProcedureRetry</a></li>
 <li><a href="org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.MockHMaster.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationProcedureRetry.MockHMaster</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/constant-values.html b/testdevapidocs/constant-values.html
index f88ba74..8608019 100644
--- a/testdevapidocs/constant-values.html
+++ b/testdevapidocs/constant-values.html
@@ -10723,6 +10723,13 @@
 <td class="colLast"><code>1000</code></td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.replication.TestReplicationBase.PEER_ID2">
+<!--   -->
+</a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a></code></td>
+<td class="colLast"><code>"2"</code></td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.replication.TestReplicationBase.SLEEP_TIME">
 <!--   -->
 </a><code>protected&nbsp;static&nbsp;final&nbsp;long</code></td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index 7191316..f5d045a 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -5759,10 +5759,14 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSCompressed</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSWithSeparateOldWALs</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillRS.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRS</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRSWithSeparateOldWALs</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationPeerConfig</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationProcedureRetry.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationProcedureRetry</a></dt>
@@ -21337,6 +21341,14 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/IntegrationTestRpcClient.SimpleClient.html#isSending--">isSending()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/IntegrationTestRpcClient.SimpleClient.html" title="class in org.apache.hadoop.hbase.ipc">IntegrationTestRpcClient.SimpleClient</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#isSerialPeer--">isSerialPeer()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestNamespaceReplication.html" title="class in org.apache.hadoop.hbase.replication">TestNamespaceReplication</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#isSerialPeer--">isSerialPeer()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationChangingPeerRegionservers</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#isSerialPeer--">isSerialPeer()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationSmallTests</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MockNoopMasterServices.html#isServerCrashProcessingEnabled--">isServerCrashProcessingEnabled()</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MockNoopMasterServices.html" title="class in org.apache.hadoop.hbase.master">MockNoopMasterServices</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/AssignmentTestingUtil.html#isServerHoldingMeta-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.ServerName-">isServerHoldingMeta(HBaseTestingUtility, ServerName)</a></span> - Static method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/AssignmentTestingUtil.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentTestingUtil</a></dt>
@@ -21889,8 +21901,12 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html#killOneMasterRS--">killOneMasterRS()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRS</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#killOneMasterRS--">killOneMasterRS()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSWithSeparateOldWALs</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#killOneSlaveRS--">killOneSlaveRS()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRS</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#killOneSlaveRS--">killOneSlaveRS()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRSWithSeparateOldWALs</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/chaos/actions/RollingBatchRestartRsAction.KillOrStart.html#KillOrStart--">KillOrStart()</a></span> - Constructor for enum org.apache.hadoop.hbase.chaos.actions.<a href="org/apache/hadoop/hbase/chaos/actions/RollingBatchRestartRsAction.KillOrStart.html" title="enum in org.apache.hadoop.hbase.chaos.actions">RollingBatchRestartRsAction.KillOrStart</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ProcessBasedLocalHBaseCluster.html#killProcess-int-">killProcess(int)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ProcessBasedLocalHBaseCluster.html" title="class in org.apache.hadoop.hbase.util">ProcessBasedLocalHBaseCluster</a></dt>
@@ -28210,6 +28226,12 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestSeekOptimizations.html#parameters--">parameters()</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestSeekOptimizations.html" title="class in org.apache.hadoop.hbase.regionserver">TestSeekOptimizations</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#parameters--">parameters()</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestNamespaceReplication.html" title="class in org.apache.hadoop.hbase.replication">TestNamespaceReplication</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#parameters--">parameters()</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationChangingPeerRegionservers</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#parameters--">parameters()</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationSmallTests</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/TestSchemaResource.html#parameters--">parameters()</a></span> - Static method in class org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/TestSchemaResource.html" title="class in org.apache.hadoop.hbase.rest">TestSchemaResource</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/TestSecureIPC.html#parameters--">parameters()</a></span> - Static method in class org.apache.hadoop.hbase.security.<a href="org/apache/hadoop/hbase/security/TestSecureIPC.html" title="class in org.apache.hadoop.hbase.security">TestSecureIPC</a></dt>
@@ -28254,8 +28276,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestShutdownWhileWALBroken.html#params--">params()</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestShutdownWhileWALBroken.html" title="class in org.apache.hadoop.hbase.regionserver">TestShutdownWhileWALBroken</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params()</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/types/TestStruct.html#params--">params()</a></span> - Static method in class org.apache.hadoop.hbase.types.<a href="org/apache/hadoop/hbase/types/TestStruct.html" title="class in org.apache.hadoop.hbase.types">TestStruct</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.MockRecordBuilder.html#parent--">parent()</a></span> - Method in class org.apache.hadoop.hbase.test.<a href="org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.MockRecordBuilder.html" title="class in org.apache.hadoop.hbase.test">MetricsAssertHelperImpl.MockRecordBuilder</a></dt>
@@ -28370,12 +28390,16 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestVerifyReplication.html#PEER_ID">PEER_ID</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestVerifyReplication.html" title="class in org.apache.hadoop.hbase.replication">TestVerifyReplication</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/SerialReplicationTestBase.LocalReplicationEndpoint.html#PEER_UUID">PEER_UUID</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/SerialReplicationTestBase.LocalReplicationEndpoint.html" title="class in org.apache.hadoop.hbase.replication">SerialReplicationTestBase.LocalReplicationEndpoint</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationSourceDummy.html#peerClusterId">peerClusterId</a></span> - Variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationSourceDummy.html" title="class in org.apache.hadoop.hbase.replication">ReplicationSourceDummy</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#peerConfigUpdated-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">peerConfigUpdated(ReplicationPeerConfig)</a></span> - Method in class org.apache.hadoop.hbase.client.replication.<a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html" title="class in org.apache.hadoop.hbase.client.replication">TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html#peerExist-java.lang.String-">peerExist(String)</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithTwoDifferentZKClusters.html#peerId">peerId</a></span> - Static variable in class org.apache.hadoop.hbase.client.replication.<a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithTwoDifferentZKClusters.html" title="class in org.apache.hadoop.hbase.client.replication">TestReplicationAdminWithTwoDifferentZKClusters</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/TestReplicationHFileCleaner.html#peerId">peerId</a></span> - Static variable in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/TestReplicationHFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">TestReplicationHFileCleaner</a></dt>
@@ -34714,8 +34738,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.html#sendTransitionReport-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode-">sendTransitionReport(ServerName, HBaseProtos.RegionInfo, RegionServerStatusProtos.RegionStateTransition.TransitionCode)</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestAssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">TestAssignmentManager</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a></span> - Static variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/StripeCompactionsPerformanceEvaluation.html#SEQ_SHARDS_PER_SERVER_KEY">SEQ_SHARDS_PER_SERVER_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/StripeCompactionsPerformanceEvaluation.html" title="class in org.apache.hadoop.hbase">StripeCompactionsPerformanceEvaluation</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.TestSequentialProcedure.html#seqid">seqid</a></span> - Static variable in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.TestSequentialProcedure.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">TestWALProcedureStore.TestSequentialProcedure</a></dt>
@@ -34794,6 +34816,12 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/TestAccessController.TestTableDDLProcedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData(ProcedureStateSerializer)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/TestAccessController.TestTableDDLProcedure.html" title="class in org.apache.hadoop.hbase.security.access">TestAccessController.TestTableDDLProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestNamespaceReplication.html#serialPeer">serialPeer</a></span> - Variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestNamespaceReplication.html" title="class in org.apache.hadoop.hbase.replication">TestNamespaceReplication</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html#serialPeer">serialPeer</a></span> - Variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationChangingPeerRegionservers</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#serialPeer">serialPeer</a></span> - Variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationSmallTests</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/replication/SerialReplicationTestBase.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">SerialReplicationTestBase</span></a> - Class in <a href="org/apache/hadoop/hbase/replication/package-summary.html">org.apache.hadoop.hbase.replication</a></dt>
 <dd>
 <div class="block">Base class for testing serial replication.</div>
@@ -36355,6 +36383,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/example/TestZooKeeperTableArchiveClient.html#setupAndCreateCleaner-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.Stoppable-">setupAndCreateCleaner(Configuration, FileSystem, Path, Stoppable)</a></span> - Method in class org.apache.hadoop.hbase.backup.example.<a href="org/apache/hadoop/hbase/backup/example/TestZooKeeperTableArchiveClient.html" title="class in org.apache.hadoop.hbase.backup.example">TestZooKeeperTableArchiveClient</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/TestExportSnapshot.html#setUpBaseConf-org.apache.hadoop.conf.Configuration-">setUpBaseConf(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/TestExportSnapshot.html" title="class in org.apache.hadoop.hbase.snapshot">TestExportSnapshot</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/TestExportSnapshotNoCluster.html#setUpBaseConf-org.apache.hadoop.conf.Configuration-">setUpBaseConf(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/TestExportSnapshotNoCluster.html" title="class in org.apache.hadoop.hbase.snapshot">TestExportSnapshotNoCluster</a></dt>
@@ -36767,6 +36797,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSCompressed</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSWithSeparateOldWALs</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRSWithSeparateOldWALs</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationSource.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationSource.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationSource</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationStateZKImpl.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationStateZKImpl.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationStateZKImpl</a></dt>
@@ -41644,6 +41678,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestZKReplicationQueueStorage.html#tearDownAfterTest--">tearDownAfterTest()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestZKReplicationQueueStorage.html" title="class in org.apache.hadoop.hbase.replication">TestZKReplicationQueueStorage</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html#tearDownBase--">tearDownBase()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationSyncUpTool</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestDefaultMemStore.html#tearDownClass--">tearDownClass()</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestDefaultMemStore.html" title="class in org.apache.hadoop.hbase.regionserver">TestDefaultMemStore</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestClientPushback.html#teardownCluster--">teardownCluster()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestClientPushback.html" title="class in org.apache.hadoop.hbase.client">TestClientPushback</a></dt>
@@ -53752,6 +53790,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/TestPassCustomCellViaRegionObserver.html#testMultiPut--">testMultiPut()</a></span> - Method in class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/TestPassCustomCellViaRegionObserver.html" title="class in org.apache.hadoop.hbase.coprocessor">TestPassCustomCellViaRegionObserver</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#testMultiQuotaThrottling--">testMultiQuotaThrottling()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html" title="class in org.apache.hadoop.hbase.quotas">TestQuotaAdmin</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncNonMetaRegionLocator.html#testMultiRegionTable--">testMultiRegionTable()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncNonMetaRegionLocator.html" title="class in org.apache.hadoop.hbase.client">TestAsyncNonMetaRegionLocator</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/TestTableMapReduceBase.html#testMultiRegionTable--">testMultiRegionTable()</a></span> - Method in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TestTableMapReduceBase.html" title="class in org.apache.hadoop.hbase.mapreduce">TestTableMapReduceBase</a></dt>
@@ -57323,6 +57363,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleWAL.html#TestReplicationKillMasterRSCompressedWithMultipleWAL--">TestReplicationKillMasterRSCompressedWithMultipleWAL()</a></span> - Constructor for class org.apache.hadoop.hbase.replication.multiwal.<a href="org/apache/hadoop/hbase/replication/multiwal/TestReplicationKillMasterRSCompressedWithMultipleWAL.html" title="class in org.apache.hadoop.hbase.replication.multiwal">TestReplicationKillMasterRSCompressedWithMultipleWAL</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillMasterRSWithSeparateOldWALs</span></a> - Class in <a href="org/apache/hadoop/hbase/replication/package-summary.html">org.apache.hadoop.hbase.replication</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#TestReplicationKillMasterRSWithSeparateOldWALs--">TestReplicationKillMasterRSWithSeparateOldWALs()</a></span> - Constructor for class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillMasterRSWithSeparateOldWALs</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillRS</span></a> - Class in <a href="org/apache/hadoop/hbase/replication/package-summary.html">org.apache.hadoop.hbase.replication</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillRS.html#TestReplicationKillRS--">TestReplicationKillRS()</a></span> - Constructor for class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillRS</a></dt>
@@ -57334,6 +57378,10 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html#TestReplicationKillSlaveRS--">TestReplicationKillSlaveRS()</a></span> - Constructor for class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRS.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRS</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationKillSlaveRSWithSeparateOldWALs</span></a> - Class in <a href="org/apache/hadoop/hbase/replication/package-summary.html">org.apache.hadoop.hbase.replication</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#TestReplicationKillSlaveRSWithSeparateOldWALs--">TestReplicationKillSlaveRSWithSeparateOldWALs()</a></span> - Constructor for class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationKillSlaveRSWithSeparateOldWALs</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication"><span class="typeNameLink">TestReplicationPeerConfig</span></a> - Class in <a href="org/apache/hadoop/hbase/replication/package-summary.html">org.apache.hadoop.hbase.replication</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html#TestReplicationPeerConfig--">TestReplicationPeerConfig()</a></span> - Constructor for class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/TestReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationPeerConfig</a></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
index 2edbeb0..da7d417 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
@@ -5125,12 +5125,20 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestReplicationSmallTests.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestReplicationKillMasterRSWithSeparateOldWALs.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSWithSeparateOldWALs.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TestReplicationSmallTests.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationSmallTests.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestReplicationWALEntryFilters.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationWALEntryFilters.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TestReplicationKillSlaveRSWithSeparateOldWALs.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestReplicationKillSlaveRSWithSeparateOldWALs.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestPerTableCFReplication.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/TestPerTableCFReplication.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html b/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html
index b8e7d6e..b178f95 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.263">TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint</a>
+<pre>public static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.269">TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint</a>
 extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
 </li>
 </ul>
@@ -293,7 +293,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>calledBack</h4>
-<pre>private static&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.264">calledBack</a></pre>
+<pre>private static&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.270">calledBack</a></pre>
 </li>
 </ul>
 </li>
@@ -310,7 +310,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestUpdatableReplicationEndpoint</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.263">TestUpdatableReplicationEndpoint</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.269">TestUpdatableReplicationEndpoint</a>()</pre>
 </li>
 </ul>
 </li>
@@ -327,7 +327,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>hasCalledBack</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.265">hasCalledBack</a>()</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.271">hasCalledBack</a>()</pre>
 </li>
 </ul>
 <a name="peerConfigUpdated-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">
@@ -336,7 +336,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>peerConfigUpdated</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.269">peerConfigUpdated</a>(org.apache.hadoop.hbase.replication.ReplicationPeerConfig&nbsp;rpc)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.275">peerConfigUpdated</a>(org.apache.hadoop.hbase.replication.ReplicationPeerConfig&nbsp;rpc)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>peerConfigUpdated</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.replication.ReplicationPeerConfigListener</code></dd>
@@ -351,7 +351,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>start</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.275">start</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.281">start</a>()</pre>
 </li>
 </ul>
 <a name="stop--">
@@ -360,7 +360,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.280">stop</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.286">stop</a>()</pre>
 </li>
 </ul>
 <a name="doStart--">
@@ -369,7 +369,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>doStart</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.285">doStart</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.291">doStart</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>doStart</code>&nbsp;in class&nbsp;<code>org.apache.hbase.thirdparty.com.google.common.util.concurrent.AbstractService</code></dd>
@@ -382,7 +382,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>doStop</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.290">doStop</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.296">doStop</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>doStop</code>&nbsp;in class&nbsp;<code>org.apache.hbase.thirdparty.com.google.common.util.concurrent.AbstractService</code></dd>
@@ -395,7 +395,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getPeerUUID</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.296">getPeerUUID</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.302">getPeerUUID</a>()</pre>
 </li>
 </ul>
 <a name="replicate-org.apache.hadoop.hbase.replication.ReplicationEndpoint.ReplicateContext-">
@@ -404,7 +404,7 @@ extends org.apache.hadoop.hbase.replication.BaseReplicationEndpoint</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>replicate</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.301">replicate</a>(org.apache.hadoop.hbase.replication.ReplicationEndpoint.ReplicateContext&nbsp;replicateContext)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.TestUpdatableReplicationEndpoint.html#line.307">replicate</a>(org.apache.hadoop.hbase.replication.ReplicationEndpoint.ReplicateContext&nbsp;replicateContext)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html b/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html
index d2eca19..8d648cd 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html
@@ -188,7 +188,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
 S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#seperateOldWALs">seperateOldWALs</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../o
 rg/apache/hadoop/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#admin">admin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#CONF_WITH_LOCALFS">CONF_WITH_LOCALFS</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf1">conf1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#conf2">conf2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#famName">famName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#hbaseAdmin">hbaseAdmin</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable1">htable1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#htable2">htable2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_RETRIE
 S">NB_RETRIES</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BATCH">NB_ROWS_IN_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#NB_ROWS_IN_BIG_BATCH">NB_ROWS_IN_BIG_BATCH</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#noRepfamName">noRepfamName</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#PEER_ID2">PEER_ID2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#row">row</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#scopes">scopes</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#SLEEP_TIME">SLEEP_TIME</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tableName">tableName</a>, <a href="../../../../../../org/apache/hado
 op/hbase/replication/TestReplicationBase.html#utility1">utility1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#utility2">utility2</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw1">zkw1</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#zkw2">zkw2</a></code></li>
 </ul>
 </li>
 </ul>
@@ -279,7 +279,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.replication.<a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html" title="class in org.apache.hadoop.hbase.replication">TestReplicationBase</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#params--">params</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-int-int-">waitForReplication</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#cleanUp--">cleanUp</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#isSerialPeer--">isSerialPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#loadData-java.lang.String-byte:A-">loadData</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSimplePutDeleteTest--">runSimplePutDeleteTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#runSmallBatchTest--">runSmallBatchTest</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#setUpBase--">setUpBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#tearDownBase--">tearDownBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/replication/TestReplicationBase.html#waitForReplication-i
 nt-int-">waitForReplication</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -438,7 +438,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <ul class="blockList">
 <li class="blockList">
 <h4>testEnableReplicationWhenSlaveClusterDoesntHaveTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.108">testEnableReplicationWhenSlaveClusterDoesntHaveTable</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.109">testEnableReplicationWhenSlaveClusterDoesntHaveTable</a>()
                                                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -452,7 +452,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <ul class="blockList">
 <li class="blockList">
 <h4>testEnableReplicationWhenReplicationNotEnabled</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.118">testEnableReplicationWhenReplicationNotEnabled</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.119">testEnableReplicationWhenReplicationNotEnabled</a>()
                                                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -466,7 +466,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <ul class="blockList">
 <li class="blockList">
 <h4>testEnableReplicationWhenTableDescriptorIsNotSameInClusters</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.139">testEnableReplicationWhenTableDescriptorIsNotSameInClusters</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.140">testEnableReplicationWhenTableDescriptorIsNotSameInClusters</a>()
                                                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -480,7 +480,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <ul class="blockList">
 <li class="blockList">
 <h4>testDisableAndEnableReplication</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.164">testDisableAndEnableReplication</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.168">testDisableAndEnableReplication</a>()
                                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -494,7 +494,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <ul class="blockList">
 <li class="blockList">
 <h4>testDisableReplicationForNonExistingTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.178">testDisableReplicationForNonExistingTable</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.182">testDisableReplicationForNonExistingTable</a>()
                                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -508,7 +508,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <ul class="blockList">
 <li class="blockList">
 <h4>testEnableReplicationForNonExistingTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.183">testEnableReplicationForNonExistingTable</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.187">testEnableReplicationForNonExistingTable</a>()
                                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -522,7 +522,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <ul class="blockList">
 <li class="blockList">
 <h4>testDisableReplicationWhenTableNameAsNull</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.188">testDisableReplicationWhenTableNameAsNull</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.192">testDisableReplicationWhenTableNameAsNull</a>()
                                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -536,7 +536,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <ul class="blockList">
 <li class="blockList">
 <h4>testEnableReplicationWhenTableNameAsNull</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.193">testEnableReplicationWhenTableNameAsNull</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.197">testEnableReplicationWhenTableNameAsNull</a>()
                                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -550,7 +550,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <ul class="blockList">
 <li class="blockList">
 <h4>testEnableReplicationForExplicitSetTableCfs</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.202">testEnableReplicationForExplicitSetTableCfs</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.206">testEnableReplicationForExplicitSetTableCfs</a>()
                                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -564,7 +564,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/TestRepli
 <ul class="blockListLast">
 <li class="blockList">
 <h4>testReplicationPeerConfigUpdateCallback</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.243">testReplicationPeerConfigUpdateCallback</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#line.247">testReplicationPeerConfigUpdateCallback</a>()
                                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index ec56445..4837d80 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -158,8 +158,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TestCacheOnWrite.CacheOnWriteType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TagUsage.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TagUsage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TestCacheOnWrite.CacheOnWriteType</span></a></li>
 </ul>
 </li>
 </ul>


[27/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
new file mode 100644
index 0000000..d589905
--- /dev/null
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html
@@ -0,0 +1,203 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one or more contributor license<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * agreements. See the NOTICE file distributed with this work for additional information regarding<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * "License"); you may not use this file except in compliance with the License. You may obtain a<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * law or agreed to in writing, software distributed under the License is distributed on an "AS IS"<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * for the specific language governing permissions and limitations under the License.<a name="line.9"></a>
+<span class="sourceLineNo">010</span> */<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.apache.hadoop.hbase.quotas;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import java.util.regex.Matcher;<a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.regex.Pattern;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.apache.hadoop.util.StringUtils;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Describe the throttling result. TODO: At some point this will be handled on the client side to<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * prevent operation to go on the server if the waitInterval is greater than the one got as result<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * of this exception.<a name="line.24"></a>
+<span class="sourceLineNo">025</span> */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>@InterfaceAudience.Public<a name="line.26"></a>
+<span class="sourceLineNo">027</span>public class RpcThrottlingException extends HBaseIOException {<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>  @InterfaceAudience.Public<a name="line.29"></a>
+<span class="sourceLineNo">030</span>  public enum Type {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>    NumRequestsExceeded, RequestSizeExceeded, NumReadRequestsExceeded, NumWriteRequestsExceeded,<a name="line.31"></a>
+<span class="sourceLineNo">032</span>    WriteSizeExceeded, ReadSizeExceeded,<a name="line.32"></a>
+<span class="sourceLineNo">033</span>  }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>  private static final String[] MSG_TYPE =<a name="line.35"></a>
+<span class="sourceLineNo">036</span>      new String[] { "number of requests exceeded", "request size limit exceeded",<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        "number of read requests exceeded", "number of write requests exceeded",<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        "write size limit exceeded", "read size limit exceeded", };<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>  private static final String MSG_WAIT = " - wait ";<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>  private long waitInterval;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>  private Type type;<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>  public RpcThrottlingException(String msg) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    super(msg);<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>    // Dirty workaround to get the information after<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    for (int i = 0; i &lt; MSG_TYPE.length; ++i) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>      int index = msg.indexOf(MSG_TYPE[i]);<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      if (index &gt;= 0) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        type = Type.values()[i];<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        waitInterval = timeFromString(waitTimeStr);<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        break;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      }<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    }<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  }<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>  public RpcThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    super(msg);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    this.waitInterval = waitInterval;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    this.type = type;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  }<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  public Type getType() {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    return this.type;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  public long getWaitInterval() {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    return this.waitInterval;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>  public static void throwNumRequestsExceeded(final long waitInterval) throws<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      RpcThrottlingException {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>  public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      throws RpcThrottlingException {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>  public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.85"></a>
+<span class="sourceLineNo">086</span>      throws RpcThrottlingException {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>  public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      throws RpcThrottlingException {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>  public static void throwWriteSizeExceeded(final long waitInterval) throws RpcThrottlingException {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>  public static void throwReadSizeExceeded(final long waitInterval) throws RpcThrottlingException {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  }<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>  private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.103"></a>
+<span class="sourceLineNo">104</span>      throws RpcThrottlingException {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + StringUtils.formatTime(waitInterval);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    throw new RpcThrottlingException(type, waitInterval, msg);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  private static long timeFromString(String timeDiff) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    Pattern[] patterns =<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        new Pattern[] { Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.111"></a>
+<span class="sourceLineNo">112</span>            Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.112"></a>
+<span class="sourceLineNo">113</span>            Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec") };<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>    for (int i = 0; i &lt; patterns.length; ++i) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      Matcher m = patterns[i].matcher(timeDiff);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      if (m.find()) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        if (i &gt; 0) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>          time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        if (i &gt; 1) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>          time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        return time;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    }<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>    return -1;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  }<a name="line.130"></a>
+<span class="sourceLineNo">131</span>}<a name="line.131"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
new file mode 100644
index 0000000..d589905
--- /dev/null
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/RpcThrottlingException.html
@@ -0,0 +1,203 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one or more contributor license<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * agreements. See the NOTICE file distributed with this work for additional information regarding<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * "License"); you may not use this file except in compliance with the License. You may obtain a<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * law or agreed to in writing, software distributed under the License is distributed on an "AS IS"<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * for the specific language governing permissions and limitations under the License.<a name="line.9"></a>
+<span class="sourceLineNo">010</span> */<a name="line.10"></a>
+<span class="sourceLineNo">011</span><a name="line.11"></a>
+<span class="sourceLineNo">012</span>package org.apache.hadoop.hbase.quotas;<a name="line.12"></a>
+<span class="sourceLineNo">013</span><a name="line.13"></a>
+<span class="sourceLineNo">014</span>import java.util.regex.Matcher;<a name="line.14"></a>
+<span class="sourceLineNo">015</span>import java.util.regex.Pattern;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.apache.hadoop.util.StringUtils;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>/**<a name="line.21"></a>
+<span class="sourceLineNo">022</span> * Describe the throttling result. TODO: At some point this will be handled on the client side to<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * prevent operation to go on the server if the waitInterval is greater than the one got as result<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * of this exception.<a name="line.24"></a>
+<span class="sourceLineNo">025</span> */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>@InterfaceAudience.Public<a name="line.26"></a>
+<span class="sourceLineNo">027</span>public class RpcThrottlingException extends HBaseIOException {<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>  @InterfaceAudience.Public<a name="line.29"></a>
+<span class="sourceLineNo">030</span>  public enum Type {<a name="line.30"></a>
+<span class="sourceLineNo">031</span>    NumRequestsExceeded, RequestSizeExceeded, NumReadRequestsExceeded, NumWriteRequestsExceeded,<a name="line.31"></a>
+<span class="sourceLineNo">032</span>    WriteSizeExceeded, ReadSizeExceeded,<a name="line.32"></a>
+<span class="sourceLineNo">033</span>  }<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>  private static final String[] MSG_TYPE =<a name="line.35"></a>
+<span class="sourceLineNo">036</span>      new String[] { "number of requests exceeded", "request size limit exceeded",<a name="line.36"></a>
+<span class="sourceLineNo">037</span>        "number of read requests exceeded", "number of write requests exceeded",<a name="line.37"></a>
+<span class="sourceLineNo">038</span>        "write size limit exceeded", "read size limit exceeded", };<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>  private static final String MSG_WAIT = " - wait ";<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>  private long waitInterval;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>  private Type type;<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>  public RpcThrottlingException(String msg) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    super(msg);<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>    // Dirty workaround to get the information after<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    for (int i = 0; i &lt; MSG_TYPE.length; ++i) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>      int index = msg.indexOf(MSG_TYPE[i]);<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      if (index &gt;= 0) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>        String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.53"></a>
+<span class="sourceLineNo">054</span>        type = Type.values()[i];<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        waitInterval = timeFromString(waitTimeStr);<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        break;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      }<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    }<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  }<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>  public RpcThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    super(msg);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    this.waitInterval = waitInterval;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    this.type = type;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  }<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  public Type getType() {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    return this.type;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  }<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  public long getWaitInterval() {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    return this.waitInterval;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>  public static void throwNumRequestsExceeded(final long waitInterval) throws<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      RpcThrottlingException {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>  public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      throws RpcThrottlingException {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>  public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.85"></a>
+<span class="sourceLineNo">086</span>      throws RpcThrottlingException {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>  public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      throws RpcThrottlingException {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>  public static void throwWriteSizeExceeded(final long waitInterval) throws RpcThrottlingException {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>  public static void throwReadSizeExceeded(final long waitInterval) throws RpcThrottlingException {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  }<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>  private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.103"></a>
+<span class="sourceLineNo">104</span>      throws RpcThrottlingException {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + StringUtils.formatTime(waitInterval);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    throw new RpcThrottlingException(type, waitInterval, msg);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  private static long timeFromString(String timeDiff) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    Pattern[] patterns =<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        new Pattern[] { Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.111"></a>
+<span class="sourceLineNo">112</span>            Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.112"></a>
+<span class="sourceLineNo">113</span>            Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec") };<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>    for (int i = 0; i &lt; patterns.length; ++i) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      Matcher m = patterns[i].matcher(timeDiff);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      if (m.find()) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        if (i &gt; 0) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>          time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        if (i &gt; 1) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>          time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        return time;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    }<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>    return -1;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  }<a name="line.130"></a>
+<span class="sourceLineNo">131</span>}<a name="line.131"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
index 985e2ef..c27a837 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
@@ -37,145 +37,148 @@
 <span class="sourceLineNo">029</span> * TODO: At some point this will be handled on the client side to prevent<a name="line.29"></a>
 <span class="sourceLineNo">030</span> * operation to go on the server if the waitInterval is grater than the one got<a name="line.30"></a>
 <span class="sourceLineNo">031</span> * as result of this exception.<a name="line.31"></a>
-<span class="sourceLineNo">032</span> */<a name="line.32"></a>
-<span class="sourceLineNo">033</span>@InterfaceAudience.Public<a name="line.33"></a>
-<span class="sourceLineNo">034</span>public class ThrottlingException extends QuotaExceededException {<a name="line.34"></a>
-<span class="sourceLineNo">035</span>  private static final long serialVersionUID = 1406576492085155743L;<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>  @InterfaceAudience.Public<a name="line.37"></a>
-<span class="sourceLineNo">038</span>  public enum Type {<a name="line.38"></a>
-<span class="sourceLineNo">039</span>    NumRequestsExceeded,<a name="line.39"></a>
-<span class="sourceLineNo">040</span>    RequestSizeExceeded,<a name="line.40"></a>
-<span class="sourceLineNo">041</span>    NumReadRequestsExceeded,<a name="line.41"></a>
-<span class="sourceLineNo">042</span>    NumWriteRequestsExceeded,<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    WriteSizeExceeded,<a name="line.43"></a>
-<span class="sourceLineNo">044</span>    ReadSizeExceeded,<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  }<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span>  private static final String[] MSG_TYPE = new String[] {<a name="line.47"></a>
-<span class="sourceLineNo">048</span>    "number of requests exceeded",<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    "request size limit exceeded",<a name="line.49"></a>
-<span class="sourceLineNo">050</span>    "number of read requests exceeded",<a name="line.50"></a>
-<span class="sourceLineNo">051</span>    "number of write requests exceeded",<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    "write size limit exceeded",<a name="line.52"></a>
-<span class="sourceLineNo">053</span>    "read size limit exceeded",<a name="line.53"></a>
-<span class="sourceLineNo">054</span>  };<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>  private static final String MSG_WAIT = " - wait ";<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>  private long waitInterval;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  private Type type;<a name="line.59"></a>
+<span class="sourceLineNo">032</span> *<a name="line.32"></a>
+<span class="sourceLineNo">033</span> * @deprecated  replaced by {@link RpcThrottlingException} since hbase-2.0.0.<a name="line.33"></a>
+<span class="sourceLineNo">034</span> */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>@Deprecated<a name="line.35"></a>
+<span class="sourceLineNo">036</span>@InterfaceAudience.Public<a name="line.36"></a>
+<span class="sourceLineNo">037</span>public class ThrottlingException extends QuotaExceededException {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>  private static final long serialVersionUID = 1406576492085155743L;<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>  @InterfaceAudience.Public<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  public enum Type {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    NumRequestsExceeded,<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    RequestSizeExceeded,<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    NumReadRequestsExceeded,<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    NumWriteRequestsExceeded,<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    WriteSizeExceeded,<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    ReadSizeExceeded,<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  }<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>  private static final String[] MSG_TYPE = new String[] {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    "number of requests exceeded",<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    "request size limit exceeded",<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    "number of read requests exceeded",<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    "number of write requests exceeded",<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    "write size limit exceeded",<a name="line.55"></a>
+<span class="sourceLineNo">056</span>    "read size limit exceeded",<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  };<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>  private static final String MSG_WAIT = " - wait ";<a name="line.59"></a>
 <span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>  public ThrottlingException(String msg) {<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    super(msg);<a name="line.62"></a>
+<span class="sourceLineNo">061</span>  private long waitInterval;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private Type type;<a name="line.62"></a>
 <span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>    // Dirty workaround to get the information after<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    for (int i = 0; i &lt; MSG_TYPE.length; ++i) {<a name="line.66"></a>
-<span class="sourceLineNo">067</span>      int index = msg.indexOf(MSG_TYPE[i]);<a name="line.67"></a>
-<span class="sourceLineNo">068</span>      if (index &gt;= 0) {<a name="line.68"></a>
-<span class="sourceLineNo">069</span>        String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.69"></a>
-<span class="sourceLineNo">070</span>        type = Type.values()[i];<a name="line.70"></a>
-<span class="sourceLineNo">071</span>        waitInterval = timeFromString(waitTimeStr);<a name="line.71"></a>
-<span class="sourceLineNo">072</span>        break;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>      }<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    }<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  public ThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    super(msg);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    this.waitInterval = waitInterval;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    this.type = type;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  }<a name="line.81"></a>
-<span class="sourceLineNo">082</span><a name="line.82"></a>
-<span class="sourceLineNo">083</span>  public Type getType() {<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    return this.type;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  }<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  public long getWaitInterval() {<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    return this.waitInterval;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>  public static void throwNumRequestsExceeded(final long waitInterval)<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      throws ThrottlingException {<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      throws ThrottlingException {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  }<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>  public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      throws ThrottlingException {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>  }<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      throws ThrottlingException {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  }<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  public static void throwWriteSizeExceeded(final long waitInterval)<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      throws ThrottlingException {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>  public static void throwReadSizeExceeded(final long waitInterval)<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      throws ThrottlingException {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  }<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>  private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      throws ThrottlingException {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + formatTime(waitInterval);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    throw new ThrottlingException(type, waitInterval, msg);<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>  public static String formatTime(long timeDiff) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    StringBuilder buf = new StringBuilder();<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    long hours = timeDiff / (60*60*1000);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    long rem = (timeDiff % (60*60*1000));<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    long minutes =  rem / (60*1000);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    rem = rem % (60*1000);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    float seconds = rem / 1000.0f;<a name="line.133"></a>
-<span class="sourceLineNo">134</span><a name="line.134"></a>
-<span class="sourceLineNo">135</span>    if (hours != 0){<a name="line.135"></a>
-<span class="sourceLineNo">136</span>      buf.append(hours);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      buf.append("hrs, ");<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    if (minutes != 0){<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      buf.append(minutes);<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      buf.append("mins, ");<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    }<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    buf.append(String.format("%.2fsec", seconds));<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    return buf.toString();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  }<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>  private static long timeFromString(String timeDiff) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    Pattern[] patterns = new Pattern[] {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec")<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    };<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>    for (int i = 0; i &lt; patterns.length; ++i) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      Matcher m = patterns[i].matcher(timeDiff);<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      if (m.find()) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        if (i &gt; 0) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>          time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.159"></a>
-<span class="sourceLineNo">160</span>        }<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        if (i &gt; 1) {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>          time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.162"></a>
+<span class="sourceLineNo">064</span>  public ThrottlingException(String msg) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    super(msg);<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>    // Dirty workaround to get the information after<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    for (int i = 0; i &lt; MSG_TYPE.length; ++i) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>      int index = msg.indexOf(MSG_TYPE[i]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      if (index &gt;= 0) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        type = Type.values()[i];<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        waitInterval = timeFromString(waitTimeStr);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        break;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      }<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    }<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>  public ThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    super(msg);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    this.waitInterval = waitInterval;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    this.type = type;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  }<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  public Type getType() {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    return this.type;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>  public long getWaitInterval() {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    return this.waitInterval;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>  public static void throwNumRequestsExceeded(final long waitInterval)<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      throws ThrottlingException {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>  public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      throws ThrottlingException {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      throws ThrottlingException {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      throws ThrottlingException {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>  public static void throwWriteSizeExceeded(final long waitInterval)<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      throws ThrottlingException {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>  public static void throwReadSizeExceeded(final long waitInterval)<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      throws ThrottlingException {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>  private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      throws ThrottlingException {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + formatTime(waitInterval);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    throw new ThrottlingException(type, waitInterval, msg);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span>  public static String formatTime(long timeDiff) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    StringBuilder buf = new StringBuilder();<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    long hours = timeDiff / (60*60*1000);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    long rem = (timeDiff % (60*60*1000));<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    long minutes =  rem / (60*1000);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    rem = rem % (60*1000);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    float seconds = rem / 1000.0f;<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>    if (hours != 0){<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      buf.append(hours);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      buf.append("hrs, ");<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    if (minutes != 0){<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      buf.append(minutes);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      buf.append("mins, ");<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    buf.append(String.format("%.2fsec", seconds));<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    return buf.toString();<a name="line.147"></a>
+<span class="sourceLineNo">148</span>  }<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>  private static long timeFromString(String timeDiff) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    Pattern[] patterns = new Pattern[] {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec")<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    };<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>    for (int i = 0; i &lt; patterns.length; ++i) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      Matcher m = patterns[i].matcher(timeDiff);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      if (m.find()) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        if (i &gt; 0) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>          time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.162"></a>
 <span class="sourceLineNo">163</span>        }<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        return time;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      }<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>    return -1;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>}<a name="line.170"></a>
+<span class="sourceLineNo">164</span>        if (i &gt; 1) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>          time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        return time;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>    return -1;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>  }<a name="line.172"></a>
+<span class="sourceLineNo">173</span>}<a name="line.173"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html
index 985e2ef..c27a837 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.html
@@ -37,145 +37,148 @@
 <span class="sourceLineNo">029</span> * TODO: At some point this will be handled on the client side to prevent<a name="line.29"></a>
 <span class="sourceLineNo">030</span> * operation to go on the server if the waitInterval is grater than the one got<a name="line.30"></a>
 <span class="sourceLineNo">031</span> * as result of this exception.<a name="line.31"></a>
-<span class="sourceLineNo">032</span> */<a name="line.32"></a>
-<span class="sourceLineNo">033</span>@InterfaceAudience.Public<a name="line.33"></a>
-<span class="sourceLineNo">034</span>public class ThrottlingException extends QuotaExceededException {<a name="line.34"></a>
-<span class="sourceLineNo">035</span>  private static final long serialVersionUID = 1406576492085155743L;<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>  @InterfaceAudience.Public<a name="line.37"></a>
-<span class="sourceLineNo">038</span>  public enum Type {<a name="line.38"></a>
-<span class="sourceLineNo">039</span>    NumRequestsExceeded,<a name="line.39"></a>
-<span class="sourceLineNo">040</span>    RequestSizeExceeded,<a name="line.40"></a>
-<span class="sourceLineNo">041</span>    NumReadRequestsExceeded,<a name="line.41"></a>
-<span class="sourceLineNo">042</span>    NumWriteRequestsExceeded,<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    WriteSizeExceeded,<a name="line.43"></a>
-<span class="sourceLineNo">044</span>    ReadSizeExceeded,<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  }<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span>  private static final String[] MSG_TYPE = new String[] {<a name="line.47"></a>
-<span class="sourceLineNo">048</span>    "number of requests exceeded",<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    "request size limit exceeded",<a name="line.49"></a>
-<span class="sourceLineNo">050</span>    "number of read requests exceeded",<a name="line.50"></a>
-<span class="sourceLineNo">051</span>    "number of write requests exceeded",<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    "write size limit exceeded",<a name="line.52"></a>
-<span class="sourceLineNo">053</span>    "read size limit exceeded",<a name="line.53"></a>
-<span class="sourceLineNo">054</span>  };<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>  private static final String MSG_WAIT = " - wait ";<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>  private long waitInterval;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  private Type type;<a name="line.59"></a>
+<span class="sourceLineNo">032</span> *<a name="line.32"></a>
+<span class="sourceLineNo">033</span> * @deprecated  replaced by {@link RpcThrottlingException} since hbase-2.0.0.<a name="line.33"></a>
+<span class="sourceLineNo">034</span> */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>@Deprecated<a name="line.35"></a>
+<span class="sourceLineNo">036</span>@InterfaceAudience.Public<a name="line.36"></a>
+<span class="sourceLineNo">037</span>public class ThrottlingException extends QuotaExceededException {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>  private static final long serialVersionUID = 1406576492085155743L;<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>  @InterfaceAudience.Public<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  public enum Type {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    NumRequestsExceeded,<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    RequestSizeExceeded,<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    NumReadRequestsExceeded,<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    NumWriteRequestsExceeded,<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    WriteSizeExceeded,<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    ReadSizeExceeded,<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  }<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>  private static final String[] MSG_TYPE = new String[] {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    "number of requests exceeded",<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    "request size limit exceeded",<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    "number of read requests exceeded",<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    "number of write requests exceeded",<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    "write size limit exceeded",<a name="line.55"></a>
+<span class="sourceLineNo">056</span>    "read size limit exceeded",<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  };<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>  private static final String MSG_WAIT = " - wait ";<a name="line.59"></a>
 <span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>  public ThrottlingException(String msg) {<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    super(msg);<a name="line.62"></a>
+<span class="sourceLineNo">061</span>  private long waitInterval;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private Type type;<a name="line.62"></a>
 <span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>    // Dirty workaround to get the information after<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    for (int i = 0; i &lt; MSG_TYPE.length; ++i) {<a name="line.66"></a>
-<span class="sourceLineNo">067</span>      int index = msg.indexOf(MSG_TYPE[i]);<a name="line.67"></a>
-<span class="sourceLineNo">068</span>      if (index &gt;= 0) {<a name="line.68"></a>
-<span class="sourceLineNo">069</span>        String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.69"></a>
-<span class="sourceLineNo">070</span>        type = Type.values()[i];<a name="line.70"></a>
-<span class="sourceLineNo">071</span>        waitInterval = timeFromString(waitTimeStr);<a name="line.71"></a>
-<span class="sourceLineNo">072</span>        break;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>      }<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    }<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  public ThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    super(msg);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    this.waitInterval = waitInterval;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    this.type = type;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  }<a name="line.81"></a>
-<span class="sourceLineNo">082</span><a name="line.82"></a>
-<span class="sourceLineNo">083</span>  public Type getType() {<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    return this.type;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  }<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  public long getWaitInterval() {<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    return this.waitInterval;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>  public static void throwNumRequestsExceeded(final long waitInterval)<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      throws ThrottlingException {<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      throws ThrottlingException {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  }<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>  public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      throws ThrottlingException {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>  }<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      throws ThrottlingException {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  }<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  public static void throwWriteSizeExceeded(final long waitInterval)<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      throws ThrottlingException {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>  public static void throwReadSizeExceeded(final long waitInterval)<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      throws ThrottlingException {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  }<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>  private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      throws ThrottlingException {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + formatTime(waitInterval);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    throw new ThrottlingException(type, waitInterval, msg);<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>  public static String formatTime(long timeDiff) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    StringBuilder buf = new StringBuilder();<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    long hours = timeDiff / (60*60*1000);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    long rem = (timeDiff % (60*60*1000));<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    long minutes =  rem / (60*1000);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    rem = rem % (60*1000);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    float seconds = rem / 1000.0f;<a name="line.133"></a>
-<span class="sourceLineNo">134</span><a name="line.134"></a>
-<span class="sourceLineNo">135</span>    if (hours != 0){<a name="line.135"></a>
-<span class="sourceLineNo">136</span>      buf.append(hours);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      buf.append("hrs, ");<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    if (minutes != 0){<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      buf.append(minutes);<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      buf.append("mins, ");<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    }<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    buf.append(String.format("%.2fsec", seconds));<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    return buf.toString();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  }<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>  private static long timeFromString(String timeDiff) {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    Pattern[] patterns = new Pattern[] {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec")<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    };<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>    for (int i = 0; i &lt; patterns.length; ++i) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      Matcher m = patterns[i].matcher(timeDiff);<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      if (m.find()) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        if (i &gt; 0) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>          time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.159"></a>
-<span class="sourceLineNo">160</span>        }<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        if (i &gt; 1) {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>          time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.162"></a>
+<span class="sourceLineNo">064</span>  public ThrottlingException(String msg) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    super(msg);<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>    // Dirty workaround to get the information after<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    // ((RemoteException)e.getCause()).unwrapRemoteException()<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    for (int i = 0; i &lt; MSG_TYPE.length; ++i) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>      int index = msg.indexOf(MSG_TYPE[i]);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      if (index &gt;= 0) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        String waitTimeStr = msg.substring(index + MSG_TYPE[i].length() + MSG_WAIT.length());<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        type = Type.values()[i];<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        waitInterval = timeFromString(waitTimeStr);<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        break;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      }<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    }<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>  public ThrottlingException(final Type type, final long waitInterval, final String msg) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    super(msg);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    this.waitInterval = waitInterval;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    this.type = type;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  }<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  public Type getType() {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    return this.type;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>  public long getWaitInterval() {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    return this.waitInterval;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>  public static void throwNumRequestsExceeded(final long waitInterval)<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      throws ThrottlingException {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    throwThrottlingException(Type.NumRequestsExceeded, waitInterval);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>  public static void throwRequestSizeExceeded(final long waitInterval)<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      throws ThrottlingException {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    throwThrottlingException(Type.RequestSizeExceeded, waitInterval);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  public static void throwNumReadRequestsExceeded(final long waitInterval)<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      throws ThrottlingException {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    throwThrottlingException(Type.NumReadRequestsExceeded, waitInterval);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  public static void throwNumWriteRequestsExceeded(final long waitInterval)<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      throws ThrottlingException {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    throwThrottlingException(Type.NumWriteRequestsExceeded, waitInterval);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>  public static void throwWriteSizeExceeded(final long waitInterval)<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      throws ThrottlingException {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    throwThrottlingException(Type.WriteSizeExceeded, waitInterval);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>  public static void throwReadSizeExceeded(final long waitInterval)<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      throws ThrottlingException {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    throwThrottlingException(Type.ReadSizeExceeded, waitInterval);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>  private static void throwThrottlingException(final Type type, final long waitInterval)<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      throws ThrottlingException {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    String msg = MSG_TYPE[type.ordinal()] + MSG_WAIT + formatTime(waitInterval);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    throw new ThrottlingException(type, waitInterval, msg);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span>  public static String formatTime(long timeDiff) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    StringBuilder buf = new StringBuilder();<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    long hours = timeDiff / (60*60*1000);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    long rem = (timeDiff % (60*60*1000));<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    long minutes =  rem / (60*1000);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    rem = rem % (60*1000);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    float seconds = rem / 1000.0f;<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>    if (hours != 0){<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      buf.append(hours);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      buf.append("hrs, ");<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    if (minutes != 0){<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      buf.append(minutes);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      buf.append("mins, ");<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    }<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    buf.append(String.format("%.2fsec", seconds));<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    return buf.toString();<a name="line.147"></a>
+<span class="sourceLineNo">148</span>  }<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>  private static long timeFromString(String timeDiff) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    Pattern[] patterns = new Pattern[] {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      Pattern.compile("^(\\d+\\.\\d\\d)sec"),<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      Pattern.compile("^(\\d+)mins, (\\d+\\.\\d\\d)sec"),<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      Pattern.compile("^(\\d+)hrs, (\\d+)mins, (\\d+\\.\\d\\d)sec")<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    };<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>    for (int i = 0; i &lt; patterns.length; ++i) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      Matcher m = patterns[i].matcher(timeDiff);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      if (m.find()) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        long time = Math.round(Float.parseFloat(m.group(1 + i)) * 1000);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        if (i &gt; 0) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>          time += Long.parseLong(m.group(i)) * (60 * 1000);<a name="line.162"></a>
 <span class="sourceLineNo">163</span>        }<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        return time;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      }<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>    return -1;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>}<a name="line.170"></a>
+<span class="sourceLineNo">164</span>        if (i &gt; 1) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>          time += Long.parseLong(m.group(i - 1)) * (60 * 60 * 1000);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        return time;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>    return -1;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>  }<a name="line.172"></a>
+<span class="sourceLineNo">173</span>}<a name="line.173"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
index e4d7b66..16a2371 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
@@ -118,30 +118,30 @@
 <span class="sourceLineNo">110</span>  }<a name="line.110"></a>
 <span class="sourceLineNo">111</span><a name="line.111"></a>
 <span class="sourceLineNo">112</span>  @Override<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  public void checkQuota(long writeSize, long readSize) throws ThrottlingException {<a name="line.113"></a>
+<span class="sourceLineNo">113</span>  public void checkQuota(long writeSize, long readSize) throws RpcThrottlingException {<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    if (!reqsLimiter.canExecute()) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      ThrottlingException.throwNumRequestsExceeded(reqsLimiter.waitInterval());<a name="line.115"></a>
+<span class="sourceLineNo">115</span>      RpcThrottlingException.throwNumRequestsExceeded(reqsLimiter.waitInterval());<a name="line.115"></a>
 <span class="sourceLineNo">116</span>    }<a name="line.116"></a>
 <span class="sourceLineNo">117</span>    if (!reqSizeLimiter.canExecute(writeSize + readSize)) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      ThrottlingException.throwRequestSizeExceeded(reqSizeLimiter<a name="line.118"></a>
+<span class="sourceLineNo">118</span>      RpcThrottlingException.throwRequestSizeExceeded(reqSizeLimiter<a name="line.118"></a>
 <span class="sourceLineNo">119</span>          .waitInterval(writeSize + readSize));<a name="line.119"></a>
 <span class="sourceLineNo">120</span>    }<a name="line.120"></a>
 <span class="sourceLineNo">121</span><a name="line.121"></a>
 <span class="sourceLineNo">122</span>    if (writeSize &gt; 0) {<a name="line.122"></a>
 <span class="sourceLineNo">123</span>      if (!writeReqsLimiter.canExecute()) {<a name="line.123"></a>
-<span class="sourceLineNo">124</span>        ThrottlingException.throwNumWriteRequestsExceeded(writeReqsLimiter.waitInterval());<a name="line.124"></a>
+<span class="sourceLineNo">124</span>        RpcThrottlingException.throwNumWriteRequestsExceeded(writeReqsLimiter.waitInterval());<a name="line.124"></a>
 <span class="sourceLineNo">125</span>      }<a name="line.125"></a>
 <span class="sourceLineNo">126</span>      if (!writeSizeLimiter.canExecute(writeSize)) {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>        ThrottlingException.throwWriteSizeExceeded(writeSizeLimiter.waitInterval(writeSize));<a name="line.127"></a>
+<span class="sourceLineNo">127</span>        RpcThrottlingException.throwWriteSizeExceeded(writeSizeLimiter.waitInterval(writeSize));<a name="line.127"></a>
 <span class="sourceLineNo">128</span>      }<a name="line.128"></a>
 <span class="sourceLineNo">129</span>    }<a name="line.129"></a>
 <span class="sourceLineNo">130</span><a name="line.130"></a>
 <span class="sourceLineNo">131</span>    if (readSize &gt; 0) {<a name="line.131"></a>
 <span class="sourceLineNo">132</span>      if (!readReqsLimiter.canExecute()) {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        ThrottlingException.throwNumReadRequestsExceeded(readReqsLimiter.waitInterval());<a name="line.133"></a>
+<span class="sourceLineNo">133</span>        RpcThrottlingException.throwNumReadRequestsExceeded(readReqsLimiter.waitInterval());<a name="line.133"></a>
 <span class="sourceLineNo">134</span>      }<a name="line.134"></a>
 <span class="sourceLineNo">135</span>      if (!readSizeLimiter.canExecute(readSize)) {<a name="line.135"></a>
-<span class="sourceLineNo">136</span>        ThrottlingException.throwReadSizeExceeded(readSizeLimiter.waitInterval(readSize));<a name="line.136"></a>
+<span class="sourceLineNo">136</span>        RpcThrottlingException.throwReadSizeExceeded(readSizeLimiter.waitInterval(readSize));<a name="line.136"></a>
 <span class="sourceLineNo">137</span>      }<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    }<a name="line.138"></a>
 <span class="sourceLineNo">139</span>  }<a name="line.139"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/export_control.html
----------------------------------------------------------------------
diff --git a/export_control.html b/export_control.html
index 22be6e7..acd7188 100644
--- a/export_control.html
+++ b/export_control.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Export Control
@@ -331,7 +331,7 @@ for more details.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index 50ce950..fa90da2 100644
--- a/index.html
+++ b/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBaseâ„¢ Home</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -409,7 +409,7 @@ Apache HBase is an open-source, distributed, versioned, non-relational database
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index 453fd19..459fad2 100644
--- a/integration.html
+++ b/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -291,7 +291,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index 55344bb..ba97839 100644
--- a/issue-tracking.html
+++ b/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20180416" />
+    <meta name="Date-Revision-yyyymmdd" content="20180417" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -288,7 +288,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-16</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-17</li>
             </p>
                 </div>
 


[13/35] hbase-site git commit: Published site at 42d5447cfbc593becfc26684e03f482eb3a0fc49.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a610f23a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html
index bee8222..7a938de 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.EverythingPassesWALEntryFilter.html
@@ -72,7 +72,7 @@
 <span class="sourceLineNo">064</span>/**<a name="line.64"></a>
 <span class="sourceLineNo">065</span> * Tests ReplicationSource and ReplicationEndpoint interactions<a name="line.65"></a>
 <span class="sourceLineNo">066</span> */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>@Category({ReplicationTests.class, MediumTests.class})<a name="line.67"></a>
+<span class="sourceLineNo">067</span>@Category({ ReplicationTests.class, MediumTests.class })<a name="line.67"></a>
 <span class="sourceLineNo">068</span>public class TestReplicationEndpoint extends TestReplicationBase {<a name="line.68"></a>
 <span class="sourceLineNo">069</span><a name="line.69"></a>
 <span class="sourceLineNo">070</span>  @ClassRule<a name="line.70"></a>
@@ -86,317 +86,317 @@
 <span class="sourceLineNo">078</span>  @BeforeClass<a name="line.78"></a>
 <span class="sourceLineNo">079</span>  public static void setUpBeforeClass() throws Exception {<a name="line.79"></a>
 <span class="sourceLineNo">080</span>    TestReplicationBase.setUpBeforeClass();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    admin.removePeer("2");<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  @AfterClass<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  public static void tearDownAfterClass() throws Exception {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    TestReplicationBase.tearDownAfterClass();<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    // check stop is called<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() &gt; 0);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  }<a name="line.90"></a>
-<span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>  @Before<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  public void setup() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    ReplicationEndpointForTest.contructedCount.set(0);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    ReplicationEndpointForTest.startedCount.set(0);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    ReplicationEndpointForTest.replicateCount.set(0);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    ReplicationEndpointForTest.lastEntries = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    final List&lt;RegionServerThread&gt; rsThreads =<a name="line.99"></a>
-<span class="sourceLineNo">100</span>        utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    for (RegionServerThread rs : rsThreads) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    // Wait for  all log roll to finish<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    utility1.waitFor(3000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      @Override<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      public boolean evaluate() throws Exception {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>        for (RegionServerThread rs : rsThreads) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span>            return false;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>          }<a name="line.111"></a>
-<span class="sourceLineNo">112</span>        }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>        return true;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>      @Override<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      public String explainFailure() throws Exception {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        List&lt;String&gt; logRollInProgressRsList = new ArrayList&lt;&gt;();<a name="line.118"></a>
-<span class="sourceLineNo">119</span>        for (RegionServerThread rs : rsThreads) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>            logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.121"></a>
-<span class="sourceLineNo">122</span>          }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>        }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>        return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      }<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    });<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>  @Test<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  public void testCustomReplicationEndpoint() throws Exception {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    // test installing a custom replication endpoint other than the default one.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    admin.addPeer("testCustomReplicationEndpoint",<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.133"></a>
-<span class="sourceLineNo">134</span>            .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    // check whether the class has been constructed and started<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      @Override<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      public boolean evaluate() throws Exception {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        return ReplicationEndpointForTest.contructedCount.get() &gt;= numRegionServers;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      }<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    });<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      @Override<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      public boolean evaluate() throws Exception {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>        return ReplicationEndpointForTest.startedCount.get() &gt;= numRegionServers;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      }<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    });<a name="line.149"></a>
-<span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>    // now replicate some data.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    doPut(Bytes.toBytes("row42"));<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      public boolean evaluate() throws Exception {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      }<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    });<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>    doAssert(Bytes.toBytes("row42"));<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>    admin.removePeer("testCustomReplicationEndpoint");<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>  @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    int peerCount = admin.getPeersCount();<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    admin.addPeer(id,<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.175"></a>
-<span class="sourceLineNo">176</span>        .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    // debug.  Peer needs to be up for the edit to make it across. This wait on<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    // peer count seems to be a hack that has us not progress till peer is up.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    if (admin.getPeersCount() &lt;= peerCount) {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      Threads.sleep(100);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    // now replicate some data<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    doPut(row);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      public boolean evaluate() throws Exception {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        // only send over one edit.<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        LOG.info("count=" + count);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>        return ReplicationEndpointReturningFalse.replicated.get();<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    });<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      throw ReplicationEndpointReturningFalse.ex.get();<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>    admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.201"></a>
-<span class="sourceLineNo">202</span>  }<a name="line.202"></a>
-<span class="sourceLineNo">203</span><a name="line.203"></a>
-<span class="sourceLineNo">204</span>  @Test<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  public void testInterClusterReplication() throws Exception {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    final String id = "testInterClusterReplication";<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>    List&lt;HRegion&gt; regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    int totEdits = 0;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>    // Make sure edits are spread across regions because we do region based batching<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    // before shipping edits.<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    for(HRegion region: regions) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      RegionInfo hri = region.getRegionInfo();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      byte[] row = hri.getStartKey();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      for (int i = 0; i &lt; 100; i++) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        if (row.length &gt; 0) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>          Put put = new Put(row);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          put.addColumn(famName, row, row);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          region.put(put);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>          totEdits++;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        }<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      }<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>    admin.addPeer(id,<a name="line.226"></a>
-<span class="sourceLineNo">227</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.227"></a>
-<span class="sourceLineNo">228</span>            .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        null);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>    final int numEdits = totEdits;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      public boolean evaluate() throws Exception {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>      @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      public String explainFailure() throws Exception {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.240"></a>
-<span class="sourceLineNo">241</span>            + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>        return failure;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      }<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    });<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>    admin.removePeer("testInterClusterReplication");<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    utility1.deleteTableData(tableName);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  @Test<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.252"></a>
-<span class="sourceLineNo">253</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    //test that we can create mutliple WALFilters reflectively<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        EverythingPassesWALEntryFilter.class.getName() +<a name="line.256"></a>
-<span class="sourceLineNo">257</span>            "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    // now replicate some data.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      doPut(connection, Bytes.toBytes("row1"));<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      doPut(connection, row);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      doPut(connection, Bytes.toBytes("row2"));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      public boolean evaluate() throws Exception {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    });<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>    Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    //make sure our reflectively created filter is in the filter chain<a name="line.274"></a>
-<span class="sourceLineNo">275</span>    Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span>  @Test (expected=IOException.class)<a name="line.279"></a>
-<span class="sourceLineNo">280</span>  public void testWALEntryFilterAddValidation() throws Exception {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    //test that we can create mutliple WALFilters reflectively<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        "IAmNotARealWalEntryFilter");<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  }<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span>  @Test (expected=IOException.class)<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.291"></a>
-<span class="sourceLineNo">292</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    //test that we can create mutliple WALFilters reflectively<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.294"></a>
-<span class="sourceLineNo">295</span>        "IAmNotARealWalEntryFilter");<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>  }<a name="line.297"></a>
+<span class="sourceLineNo">081</span>    numRegionServers = utility1.getHBaseCluster().getRegionServerThreads().size();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  @AfterClass<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  public static void tearDownAfterClass() throws Exception {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    TestReplicationBase.tearDownAfterClass();<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    // check stop is called<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    Assert.assertTrue(ReplicationEndpointForTest.stoppedCount.get() &gt; 0);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>  @Before<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  public void setup() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    ReplicationEndpointForTest.contructedCount.set(0);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    ReplicationEndpointForTest.startedCount.set(0);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    ReplicationEndpointForTest.replicateCount.set(0);<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    ReplicationEndpointReturningFalse.replicated.set(false);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    ReplicationEndpointForTest.lastEntries = null;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    final List&lt;RegionServerThread&gt; rsThreads =<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        utility1.getMiniHBaseCluster().getRegionServerThreads();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    for (RegionServerThread rs : rsThreads) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      utility1.getAdmin().rollWALWriter(rs.getRegionServer().getServerName());<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    }<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    // Wait for  all log roll to finish<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    utility1.waitFor(3000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      @Override<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      public boolean evaluate() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        for (RegionServerThread rs : rsThreads) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>            return false;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>          }<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        return true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>      @Override<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      public String explainFailure() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        List&lt;String&gt; logRollInProgressRsList = new ArrayList&lt;&gt;();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        for (RegionServerThread rs : rsThreads) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>          if (!rs.getRegionServer().walRollRequestFinished()) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>            logRollInProgressRsList.add(rs.getRegionServer().toString());<a name="line.120"></a>
+<span class="sourceLineNo">121</span>          }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        return "Still waiting for log roll on regionservers: " + logRollInProgressRsList;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    });<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>  @Test<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  public void testCustomReplicationEndpoint() throws Exception {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // test installing a custom replication endpoint other than the default one.<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    admin.addPeer("testCustomReplicationEndpoint",<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.132"></a>
+<span class="sourceLineNo">133</span>            .setReplicationEndpointImpl(ReplicationEndpointForTest.class.getName()), null);<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>    // check whether the class has been constructed and started<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      @Override<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      public boolean evaluate() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        return ReplicationEndpointForTest.contructedCount.get() &gt;= numRegionServers;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      }<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    });<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      public boolean evaluate() throws Exception {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        return ReplicationEndpointForTest.startedCount.get() &gt;= numRegionServers;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    });<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.150"></a>
+<span class="sourceLineNo">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>    // now replicate some data.<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    doPut(Bytes.toBytes("row42"));<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      public boolean evaluate() throws Exception {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    });<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>    doAssert(Bytes.toBytes("row42"));<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>    admin.removePeer("testCustomReplicationEndpoint");<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>  @Test<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  public void testReplicationEndpointReturnsFalseOnReplicate() throws Exception {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    Assert.assertEquals(0, ReplicationEndpointForTest.replicateCount.get());<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    Assert.assertTrue(!ReplicationEndpointReturningFalse.replicated.get());<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    int peerCount = admin.getPeersCount();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    final String id = "testReplicationEndpointReturnsFalseOnReplicate";<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    admin.addPeer(id,<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        .setReplicationEndpointImpl(ReplicationEndpointReturningFalse.class.getName()), null);<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    // This test is flakey and then there is so much stuff flying around in here its, hard to<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    // debug.  Peer needs to be up for the edit to make it across. This wait on<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    // peer count seems to be a hack that has us not progress till peer is up.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    if (admin.getPeersCount() &lt;= peerCount) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      LOG.info("Waiting on peercount to go up from " + peerCount);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      Threads.sleep(100);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    // now replicate some data<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    doPut(row);<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      public boolean evaluate() throws Exception {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        // Looks like replication endpoint returns false unless we put more than 10 edits. We<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        // only send over one edit.<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        int count = ReplicationEndpointForTest.replicateCount.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        LOG.info("count=" + count);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        return ReplicationEndpointReturningFalse.replicated.get();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    });<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    if (ReplicationEndpointReturningFalse.ex.get() != null) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      throw ReplicationEndpointReturningFalse.ex.get();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    }<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>    admin.removePeer("testReplicationEndpointReturnsFalseOnReplicate");<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  public void testInterClusterReplication() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    final String id = "testInterClusterReplication";<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>    List&lt;HRegion&gt; regions = utility1.getHBaseCluster().getRegions(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    int totEdits = 0;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>    // Make sure edits are spread across regions because we do region based batching<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    // before shipping edits.<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    for(HRegion region: regions) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      RegionInfo hri = region.getRegionInfo();<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      byte[] row = hri.getStartKey();<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      for (int i = 0; i &lt; 100; i++) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        if (row.length &gt; 0) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          Put put = new Put(row);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>          put.addColumn(famName, row, row);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          region.put(put);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>          totEdits++;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>    admin.addPeer(id,<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf2))<a name="line.226"></a>
+<span class="sourceLineNo">227</span>            .setReplicationEndpointImpl(InterClusterReplicationEndpointForTest.class.getName()),<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        null);<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>    final int numEdits = totEdits;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    Waiter.waitFor(conf1, 30000, new Waiter.ExplainingPredicate&lt;Exception&gt;() {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      public boolean evaluate() throws Exception {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        return InterClusterReplicationEndpointForTest.replicateCount.get() == numEdits;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>      @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      public String explainFailure() throws Exception {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        String failure = "Failed to replicate all edits, expected = " + numEdits<a name="line.239"></a>
+<span class="sourceLineNo">240</span>            + " replicated = " + InterClusterReplicationEndpointForTest.replicateCount.get();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        return failure;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    });<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>    admin.removePeer("testInterClusterReplication");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    utility1.deleteTableData(tableName);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>  @Test<a name="line.249"></a>
+<span class="sourceLineNo">250</span>  public void testWALEntryFilterFromReplicationEndpoint() throws Exception {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    //test that we can create mutliple WALFilters reflectively<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        EverythingPassesWALEntryFilter.class.getName() +<a name="line.255"></a>
+<span class="sourceLineNo">256</span>            "," + EverythingPassesWALEntryFilterSubclass.class.getName());<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    admin.addPeer("testWALEntryFilterFromReplicationEndpoint", rpc);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    // now replicate some data.<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      doPut(connection, Bytes.toBytes("row1"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      doPut(connection, row);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      doPut(connection, Bytes.toBytes("row2"));<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>    Waiter.waitFor(conf1, 60000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      @Override<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      public boolean evaluate() throws Exception {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        return ReplicationEndpointForTest.replicateCount.get() &gt;= 1;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      }<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    });<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span>    Assert.assertNull(ReplicationEndpointWithWALEntryFilter.ex.get());<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    //make sure our reflectively created filter is in the filter chain<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    Assert.assertTrue(EverythingPassesWALEntryFilter.hasPassedAnEntry());<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    admin.removePeer("testWALEntryFilterFromReplicationEndpoint");<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>  @Test (expected=IOException.class)<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  public void testWALEntryFilterAddValidation() throws Exception {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    //test that we can create mutliple WALFilters reflectively<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        "IAmNotARealWalEntryFilter");<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    admin.addPeer("testWALEntryFilterAddValidation", rpc);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>  @Test (expected=IOException.class)<a name="line.288"></a>
+<span class="sourceLineNo">289</span>  public void testWALEntryFilterUpdateValidation() throws Exception {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    ReplicationPeerConfig rpc =  new ReplicationPeerConfig().setClusterKey(ZKConfig.getZooKeeperClusterKey(conf1))<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        .setReplicationEndpointImpl(ReplicationEndpointWithWALEntryFilter.class.getName());<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    //test that we can create mutliple WALFilters reflectively<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    rpc.getConfiguration().put(BaseReplicationEndpoint.REPLICATION_WALENTRYFILTER_CONFIG_KEY,<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        "IAmNotARealWalEntryFilter");<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    admin.updatePeerConfig("testWALEntryFilterUpdateValidation", rpc);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>  }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
 <span class="sourceLineNo">298</span><a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>  @Test<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  public void testMetricsSourceBaseSourcePassthrough(){<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    /*<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    allows for custom JMX metrics.<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    the two layers of wrapping to the actual BaseSource.<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    */<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    String id = "id";<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>    MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    String gaugeName = "gauge";<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    String singleGaugeName = "source.id." + gaugeName;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    String globalGaugeName = "source." + gaugeName;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    long delta = 1;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    String counterName = "counter";<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    String singleCounterName = "source.id." + counterName;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    String globalCounterName = "source." + counterName;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    long count = 2;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    source.decGauge(gaugeName, delta);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    source.getMetricsContext();<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    source.getMetricsDescription();<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    source.getMetricsJmxContext();<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    source.getMetricsName();<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    source.incCounters(counterName, count);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    source.incGauge(gaugeName, delta);<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    source.init();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    source.removeMetric(gaugeName);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    source.setGauge(gaugeName, delta);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    source.updateHistogram(counterName, count);<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    verify(globalRms).getMetricsContext();<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    verify(globalRms).getMetricsJmxContext();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    verify(globalRms).getMetricsName();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    verify(singleRms).incCounters(singleCounterName, count);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    verify(globalRms).incCounters(globalCounterName, count);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    verify(globalRms).init();<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    verify(singleRms).removeMetric(singleGaugeName);<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    verify(globalRms).removeMetric(globalGaugeName);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    verify(globalRms).updateHistogram(globalCounterName, count);<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>  private void doPut(byte[] row) throws IOException {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      doPut(connection, row);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>  private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    try (Table t = connection.getTable(tableName)) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      Put put = new Put(row);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      put.addColumn(famName, row, row);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      t.put(put);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>  private static void doAssert(byte[] row) throws Exception {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      return; // first call<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    List&lt;Cell&gt; cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    Assert.assertEquals(1, cells.size());<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      cells.get(0).getRowLength(), row, 0, row.length));<a name="line.380"></a>
-<span class="sourceLineNo">381</span>  }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span>  public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    static UUID uuid = UUID.randomUUID();<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    static AtomicInteger contructedCount = new AtomicInteger();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    static AtomicInteger startedCount = new AtomicInteger();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    static volatile List&lt;Entry&gt; lastEntries = null;<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>    public ReplicationEndpointForTest() {<a name="line.391"></a>
+<span class="sourceLineNo">299</span>  @Test<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  public void testMetricsSourceBaseSourcePassthrough(){<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    /*<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    The replication MetricsSource wraps a MetricsReplicationSourceSourceImpl<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    and a MetricsReplicationGlobalSourceSource, so that metrics get written to both namespaces.<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    Both of those classes wrap a MetricsReplicationSourceImpl that implements BaseSource, which<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    allows for custom JMX metrics.<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    This test checks to make sure the BaseSource decorator logic on MetricsSource actually calls down through<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    the two layers of wrapping to the actual BaseSource.<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    String id = "id";<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    DynamicMetricsRegistry mockRegistry = mock(DynamicMetricsRegistry.class);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    MetricsReplicationSourceImpl singleRms = mock(MetricsReplicationSourceImpl.class);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    when(singleRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    MetricsReplicationSourceImpl globalRms = mock(MetricsReplicationSourceImpl.class);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    when(globalRms.getMetricsRegistry()).thenReturn(mockRegistry);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>    MetricsReplicationSourceSource singleSourceSource = new MetricsReplicationSourceSourceImpl(singleRms, id);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    MetricsReplicationSourceSource globalSourceSource = new MetricsReplicationGlobalSourceSource(globalRms);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    MetricsSource source = new MetricsSource(id, singleSourceSource, globalSourceSource);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    String gaugeName = "gauge";<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    String singleGaugeName = "source.id." + gaugeName;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    String globalGaugeName = "source." + gaugeName;<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    long delta = 1;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    String counterName = "counter";<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    String singleCounterName = "source.id." + counterName;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    String globalCounterName = "source." + counterName;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    long count = 2;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    source.decGauge(gaugeName, delta);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    source.getMetricsContext();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    source.getMetricsDescription();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    source.getMetricsJmxContext();<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    source.getMetricsName();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    source.incCounters(counterName, count);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    source.incGauge(gaugeName, delta);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    source.init();<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    source.removeMetric(gaugeName);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    source.setGauge(gaugeName, delta);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    source.updateHistogram(counterName, count);<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span>    verify(singleRms).decGauge(singleGaugeName, delta);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    verify(globalRms).decGauge(globalGaugeName, delta);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    verify(globalRms).getMetricsContext();<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    verify(globalRms).getMetricsJmxContext();<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    verify(globalRms).getMetricsName();<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    verify(singleRms).incCounters(singleCounterName, count);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    verify(globalRms).incCounters(globalCounterName, count);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    verify(singleRms).incGauge(singleGaugeName, delta);<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    verify(globalRms).incGauge(globalGaugeName, delta);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    verify(globalRms).init();<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    verify(singleRms).removeMetric(singleGaugeName);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    verify(globalRms).removeMetric(globalGaugeName);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    verify(singleRms).setGauge(singleGaugeName, delta);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    verify(globalRms).setGauge(globalGaugeName, delta);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    verify(singleRms).updateHistogram(singleCounterName, count);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    verify(globalRms).updateHistogram(globalCounterName, count);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>  private void doPut(byte[] row) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    try (Connection connection = ConnectionFactory.createConnection(conf1)) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      doPut(connection, row);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>  private void doPut(final Connection connection, final byte [] row) throws IOException {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    try (Table t = connection.getTable(tableName)) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      Put put = new Put(row);<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      put.addColumn(famName, row, row);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      t.put(put);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>  private static void doAssert(byte[] row) throws Exception {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    if (ReplicationEndpointForTest.lastEntries == null) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      return; // first call<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    Assert.assertEquals(1, ReplicationEndpointForTest.lastEntries.size());<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    List&lt;Cell&gt; cells = ReplicationEndpointForTest.lastEntries.get(0).getEdit().getCells();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    Assert.assertEquals(1, cells.size());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    Assert.assertTrue(Bytes.equals(cells.get(0).getRowArray(), cells.get(0).getRowOffset(),<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      cells.get(0).getRowLength(), row, 0, row.length));<a name="line.379"></a>
+<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>  public static class ReplicationEndpointForTest extends BaseReplicationEndpoint {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    static UUID uuid = UUID.randomUUID();<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    static AtomicInteger contructedCount = new AtomicInteger();<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    static AtomicInteger startedCount = new AtomicInteger();<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    static AtomicInteger stoppedCount = new AtomicInteger();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    static volatile List&lt;Entry&gt; lastEntries = null;<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>    public ReplicationEndpointForTest() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      replicateCount.set(0);<a name="line.391"></a>
 <span class="sourceLineNo">392</span>      contructedCount.incrementAndGet();<a name="line.392"></a>
 <span class="sourceLineNo">393</span>    }<a name="line.393"></a>
 <span class="sourceLineNo">394</span><a name="line.394"></a>
@@ -441,127 +441,131 @@
 <span class="sourceLineNo">433</span>    static AtomicInteger replicateCount = new AtomicInteger();<a name="line.433"></a>
 <span class="sourceLineNo">434</span>    static boolean failedOnce;<a name="line.434"></a>
 <span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      boolean success = super.replicate(replicateContext);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>      if (success) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        replicateCount.addAndGet(replicateContext.entries.size());<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      }<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      return success;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>    @Override<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    protected Replicator createReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      // Fail only once, we don't want to slow down the test.<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      if (failedOnce) {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>        return new DummyReplicator(entries, ordinal);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      } else {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>        failedOnce = true;<a name="line.451"></a>
-<span class="sourceLineNo">452</span>        return new FailingDummyReplicator(entries, ordinal);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
-<span class="sourceLineNo">455</span><a name="line.455"></a>
-<span class="sourceLineNo">456</span>    protected class DummyReplicator extends Replicator {<a name="line.456"></a>
-<span class="sourceLineNo">457</span><a name="line.457"></a>
-<span class="sourceLineNo">458</span>      private int ordinal;<a name="line.458"></a>
+<span class="sourceLineNo">436</span>    public InterClusterReplicationEndpointForTest() {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>      replicateCount.set(0);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    }<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>    @Override<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      boolean success = super.replicate(replicateContext);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      if (success) {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        replicateCount.addAndGet(replicateContext.entries.size());<a name="line.444"></a>
+<span class="sourceLineNo">445</span>      }<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      return success;<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span>    @Override<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    protected Replicator createReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      // Fail only once, we don't want to slow down the test.<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      if (failedOnce) {<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        return new DummyReplicator(entries, ordinal);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      } else {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        failedOnce = true;<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        return new FailingDummyReplicator(entries, ordinal);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      }<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    }<a name="line.458"></a>
 <span class="sourceLineNo">459</span><a name="line.459"></a>
-<span class="sourceLineNo">460</span>      public DummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        super(entries, ordinal);<a name="line.461"></a>
-<span class="sourceLineNo">462</span>        this.ordinal = ordinal;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>      @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      public Integer call() throws IOException {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        return ordinal;<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      }<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    }<a name="line.469"></a>
-<span class="sourceLineNo">470</span><a name="line.470"></a>
-<span class="sourceLineNo">471</span>    protected class FailingDummyReplicator extends DummyReplicator {<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span>      public FailingDummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        super(entries, ordinal);<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      }<a name="line.475"></a>
+<span class="sourceLineNo">460</span>    protected class DummyReplicator extends Replicator {<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>      private int ordinal;<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>      public DummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        super(entries, ordinal);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        this.ordinal = ordinal;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>      }<a name="line.467"></a>
+<span class="sourceLineNo">468</span><a name="line.468"></a>
+<span class="sourceLineNo">469</span>      @Override<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      public Integer call() throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        return ordinal;<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      }<a name="line.472"></a>
+<span class="sourceLineNo">473</span>    }<a name="line.473"></a>
+<span class="sourceLineNo">474</span><a name="line.474"></a>
+<span class="sourceLineNo">475</span>    protected class FailingDummyReplicator extends DummyReplicator {<a name="line.475"></a>
 <span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>      @Override<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      public Integer call() throws IOException {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>        throw new IOException("Sample Exception: Failed to replicate.");<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      }<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>  public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    static int COUNT = 10;<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    @Override<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>      try {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        // check row<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        doAssert(row);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      } catch (Exception e) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>        ex.set(e);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>      super.replicate(replicateContext);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>      replicated.set(replicateCount.get() &gt; COUNT); // first 10 times, we return false<a name="line.500"></a>
-<span class="sourceLineNo">501</span>      return replicated.get();<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    }<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span>  // return a WALEntry filter which only accepts "row", but not other rows<a name="line.505"></a>
-<span class="sourceLineNo">506</span>  public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.507"></a>
+<span class="sourceLineNo">477</span>      public FailingDummyReplicator(List&lt;Entry&gt; entries, int ordinal) {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        super(entries, ordinal);<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      }<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>      @Override<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      public Integer call() throws IOException {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        throw new IOException("Sample Exception: Failed to replicate.");<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      }<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>  }<a name="line.486"></a>
+<span class="sourceLineNo">487</span><a name="line.487"></a>
+<span class="sourceLineNo">488</span>  public static class ReplicationEndpointReturningFalse extends ReplicationEndpointForTest {<a name="line.488"></a>
+<span class="sourceLineNo">489</span>    static int COUNT = 10;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    static AtomicBoolean replicated = new AtomicBoolean(false);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    @Override<a name="line.492"></a>
+<span class="sourceLineNo">493</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>      try {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        // check row<a name="line.495"></a>
+<span class="sourceLineNo">496</span>        doAssert(row);<a name="line.496"></a>
+<span class="sourceLineNo">497</span>      } catch (Exception e) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>        ex.set(e);<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      }<a name="line.499"></a>
+<span class="sourceLineNo">500</span><a name="line.500"></a>
+<span class="sourceLineNo">501</span>      super.replicate(replicateContext);<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get());<a name="line.502"></a>
+<span class="sourceLineNo">503</span><a name="line.503"></a>
+<span class="sourceLineNo">504</span>      replicated.set(replicateCount.get() &gt; COUNT); // first 10 times, we return false<a name="line.504"></a>
+<span class="sourceLineNo">505</span>      return replicated.get();<a name="line.505"></a>
+<span class="sourceLineNo">506</span>    }<a name="line.506"></a>
+<span class="sourceLineNo">507</span>  }<a name="line.507"></a>
 <span class="sourceLineNo">508</span><a name="line.508"></a>
-<span class="sourceLineNo">509</span>    @Override<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      try {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        super.replicate(replicateContext);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>        doAssert(row);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      } catch (Exception e) {<a name="line.514"></a>
-<span class="sourceLineNo">515</span>        ex.set(e);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      }<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      return true;<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>    @Override<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    public WALEntryFilter getWALEntryfilter() {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        @Override<a name="line.523"></a>
-<span class="sourceLineNo">524</span>        public Entry filter(Entry entry) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>          ArrayList&lt;Cell&gt; cells = entry.getEdit().getCells();<a name="line.525"></a>
-<span class="sourceLineNo">526</span>          int size = cells.size();<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          for (int i = size-1; i &gt;= 0; i--) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>            Cell cell = cells.get(i);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>            if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.529"></a>
-<span class="sourceLineNo">530</span>              row, 0, row.length)) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span>              cells.remove(i);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>            }<a name="line.532"></a>
-<span class="sourceLineNo">533</span>          }<a name="line.533"></a>
-<span class="sourceLineNo">534</span>          return entry;<a name="line.534"></a>
-<span class="sourceLineNo">535</span>        }<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      });<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    }<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  }<a name="line.538"></a>
-<span class="sourceLineNo">539</span><a name="line.539"></a>
-<span class="sourceLineNo">540</span>  public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    private static boolean passedEntry = false;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    @Override<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    public Entry filter(Entry entry) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>      passedEntry = true;<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      return entry;<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>    public static boolean hasPassedAnEntry(){<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      return passedEntry;<a name="line.549"></a>
+<span class="sourceLineNo">509</span>  // return a WALEntry filter which only accepts "row", but not other rows<a name="line.509"></a>
+<span class="sourceLineNo">510</span>  public static class ReplicationEndpointWithWALEntryFilter extends ReplicationEndpointForTest {<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    static AtomicReference&lt;Exception&gt; ex = new AtomicReference&lt;&gt;(null);<a name="line.511"></a>
+<span class="sourceLineNo">512</span><a name="line.512"></a>
+<span class="sourceLineNo">513</span>    @Override<a name="line.513"></a>
+<span class="sourceLineNo">514</span>    public boolean replicate(ReplicateContext replicateContext) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      try {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        super.replicate(replicateContext);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        doAssert(row);<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      } catch (Exception e) {<a name="line.518"></a>
+<span class="sourceLineNo">519</span>        ex.set(e);<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      }<a name="line.520"></a>
+<span class="sourceLineNo">521</span>      return true;<a name="line.521"></a>
+<span class="sourceLineNo">522</span>    }<a name="line.522"></a>
+<span class="sourceLineNo">523</span><a name="line.523"></a>
+<span class="sourceLineNo">524</span>    @Override<a name="line.524"></a>
+<span class="sourceLineNo">525</span>    public WALEntryFilter getWALEntryfilter() {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      return new ChainWALEntryFilter(super.getWALEntryfilter(), new WALEntryFilter() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>        @Override<a name="line.527"></a>
+<span class="sourceLineNo">528</span>        public Entry filter(Entry entry) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>          ArrayList&lt;Cell&gt; cells = entry.getEdit().getCells();<a name="line.529"></a>
+<span class="sourceLineNo">530</span>          int size = cells.size();<a name="line.530"></a>
+<span class="sourceLineNo">531</span>          for (int i = size-1; i &gt;= 0; i--) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>            Cell cell = cells.get(i);<a name="line.532"></a>
+<span class="sourceLineNo">533</span>            if (!Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),<a name="line.533"></a>
+<span class="sourceLineNo">534</span>              row, 0, row.length)) {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>              cells.remove(i);<a name="line.535"></a>
+<span class="sourceLineNo">536</span>            }<a name="line.536"></a>
+<span class="sourceLineNo">537</span>          }<a name="line.537"></a>
+<span class="sourceLineNo">538</span>          return entry;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>        }<a name="line.539"></a>
+<span class="sourceLineNo">540</span>      });<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    }<a name="line.541"></a>
+<span class="sourceLineNo">542</span>  }<a name="line.542"></a>
+<span class="sourceLineNo">543</span><a name="line.543"></a>
+<span class="sourceLineNo">544</span>  public static class EverythingPassesWALEntryFilter implements WALEntryFilter {<a name="line.544"></a>
+<span class="sourceLineNo">545</span>    private static boolean passedEntry = false;<a name="line.545"></a>
+<span class="sourceLineNo">546</span>    @Override<a name="line.546"></a>
+<span class="sourceLineNo">547</span>    public Entry filter(Entry entry) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>      passedEntry = true;<a name="line.548"></a>
+<span class="sourceLineNo">549</span>      return entry;<a name="line.549"></a>
 <span class="sourceLineNo">550</span>    }<a name="line.550"></a>
-<span class="sourceLineNo">551</span>  }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span>  public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>    public static boolean hasPassedAnEntry(){<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      return passedEntry;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    }<a name="line.554"></a>
 <span class="sourceLineNo">555</span>  }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>}<a name="line.556"></a>
+<span class="sourceLineNo">556</span><a name="line.556"></a>
+<span class="sourceLineNo">557</span>  public static class EverythingPassesWALEntryFilterSubclass extends EverythingPassesWALEntryFilter {<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span>  }<a name="line.559"></a>
+<span class="sourceLineNo">560</span>}<a name="line.560"></a>