You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by mi...@apache.org on 2017/03/21 16:36:13 UTC
[17/52] [partial] hbase-site git commit: Published site at
1cfd22bf43c9b64afae35d9bf16f764d0da80cab.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/client/ScanResultConsumer.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/ScanResultConsumer.html b/apidocs/src-html/org/apache/hadoop/hbase/client/ScanResultConsumer.html
index 7f2ddf1..c6e88dd 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/client/ScanResultConsumer.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/ScanResultConsumer.html
@@ -27,33 +27,42 @@
<span class="sourceLineNo">019</span><a name="line.19"></a>
<span class="sourceLineNo">020</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.20"></a>
<span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.21"></a>
-<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>/**<a name="line.23"></a>
-<span class="sourceLineNo">024</span> * Receives {@link Result} for an asynchronous scan.<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>@InterfaceStability.Unstable<a name="line.27"></a>
-<span class="sourceLineNo">028</span>public interface ScanResultConsumer {<a name="line.28"></a>
-<span class="sourceLineNo">029</span><a name="line.29"></a>
-<span class="sourceLineNo">030</span> /**<a name="line.30"></a>
-<span class="sourceLineNo">031</span> * @param result the data fetched from HBase service.<a name="line.31"></a>
-<span class="sourceLineNo">032</span> * @return {@code false} if you want to terminate the scan process. Otherwise {@code true}<a name="line.32"></a>
-<span class="sourceLineNo">033</span> */<a name="line.33"></a>
-<span class="sourceLineNo">034</span> boolean onNext(Result result);<a name="line.34"></a>
-<span class="sourceLineNo">035</span><a name="line.35"></a>
-<span class="sourceLineNo">036</span> /**<a name="line.36"></a>
-<span class="sourceLineNo">037</span> * Indicate that we hit an unrecoverable error and the scan operation is terminated.<a name="line.37"></a>
-<span class="sourceLineNo">038</span> * <p><a name="line.38"></a>
-<span class="sourceLineNo">039</span> * We will not call {@link #onComplete()} after calling {@link #onError(Throwable)}.<a name="line.39"></a>
-<span class="sourceLineNo">040</span> */<a name="line.40"></a>
-<span class="sourceLineNo">041</span> void onError(Throwable error);<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> * Indicate that the scan operation is completed normally.<a name="line.44"></a>
-<span class="sourceLineNo">045</span> */<a name="line.45"></a>
-<span class="sourceLineNo">046</span> void onComplete();<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>}<a name="line.48"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.client.metrics.ScanMetrics;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>/**<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * Receives {@link Result} for an asynchronous scan.<a name="line.25"></a>
+<span class="sourceLineNo">026</span> */<a name="line.26"></a>
+<span class="sourceLineNo">027</span>@InterfaceAudience.Public<a name="line.27"></a>
+<span class="sourceLineNo">028</span>@InterfaceStability.Unstable<a name="line.28"></a>
+<span class="sourceLineNo">029</span>public interface ScanResultConsumer {<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span> /**<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * @param result the data fetched from HBase service.<a name="line.32"></a>
+<span class="sourceLineNo">033</span> * @return {@code false} if you want to terminate the scan process. Otherwise {@code true}<a name="line.33"></a>
+<span class="sourceLineNo">034</span> */<a name="line.34"></a>
+<span class="sourceLineNo">035</span> boolean onNext(Result result);<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span> /**<a name="line.37"></a>
+<span class="sourceLineNo">038</span> * Indicate that we hit an unrecoverable error and the scan operation is terminated.<a name="line.38"></a>
+<span class="sourceLineNo">039</span> * <p><a name="line.39"></a>
+<span class="sourceLineNo">040</span> * We will not call {@link #onComplete()} after calling {@link #onError(Throwable)}.<a name="line.40"></a>
+<span class="sourceLineNo">041</span> */<a name="line.41"></a>
+<span class="sourceLineNo">042</span> void onError(Throwable error);<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span> /**<a name="line.44"></a>
+<span class="sourceLineNo">045</span> * Indicate that the scan operation is completed normally.<a name="line.45"></a>
+<span class="sourceLineNo">046</span> */<a name="line.46"></a>
+<span class="sourceLineNo">047</span> void onComplete();<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> * If {@code scan.isScanMetricsEnabled()} returns true, then this method will be called prior to<a name="line.50"></a>
+<span class="sourceLineNo">051</span> * all other methods in this interface to give you the {@link ScanMetrics} instance for this scan<a name="line.51"></a>
+<span class="sourceLineNo">052</span> * operation. The {@link ScanMetrics} instance will be updated on-the-fly during the scan, you can<a name="line.52"></a>
+<span class="sourceLineNo">053</span> * store it somewhere to get the metrics at any time if you want.<a name="line.53"></a>
+<span class="sourceLineNo">054</span> */<a name="line.54"></a>
+<span class="sourceLineNo">055</span> default void onScanMetricsCreated(ScanMetrics scanMetrics) {<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>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/client/TableSnapshotScanner.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/TableSnapshotScanner.html b/apidocs/src-html/org/apache/hadoop/hbase/client/TableSnapshotScanner.html
index f4ced21..11f3dbd 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/client/TableSnapshotScanner.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/TableSnapshotScanner.html
@@ -135,7 +135,7 @@
<span class="sourceLineNo">127</span> final List<HRegionInfo> restoredRegions = meta.getRegionsToAdd();<a name="line.127"></a>
<span class="sourceLineNo">128</span><a name="line.128"></a>
<span class="sourceLineNo">129</span> htd = meta.getTableDescriptor();<a name="line.129"></a>
-<span class="sourceLineNo">130</span> regions = new ArrayList<HRegionInfo>(restoredRegions.size());<a name="line.130"></a>
+<span class="sourceLineNo">130</span> regions = new ArrayList<>(restoredRegions.size());<a name="line.130"></a>
<span class="sourceLineNo">131</span> for (HRegionInfo hri: restoredRegions) {<a name="line.131"></a>
<span class="sourceLineNo">132</span> if (CellUtil.overlappingKeys(scan.getStartRow(), scan.getStopRow(),<a name="line.132"></a>
<span class="sourceLineNo">133</span> hri.getStartKey(), hri.getEndKey())) {<a name="line.133"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/client/replication/ReplicationAdmin.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/replication/ReplicationAdmin.html b/apidocs/src-html/org/apache/hadoop/hbase/client/replication/ReplicationAdmin.html
index b2f1221..b9503b7 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/client/replication/ReplicationAdmin.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/replication/ReplicationAdmin.html
@@ -26,49 +26,49 @@
<span class="sourceLineNo">018</span> */<a name="line.18"></a>
<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.client.replication;<a name="line.19"></a>
<span class="sourceLineNo">020</span><a name="line.20"></a>
-<span class="sourceLineNo">021</span>import com.google.common.annotations.VisibleForTesting;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import com.google.common.collect.Lists;<a name="line.22"></a>
-<span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.io.Closeable;<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.Collection;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.HashMap;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.util.HashSet;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.List;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.Map;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.TreeMap;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.util.Map.Entry;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import java.util.Set;<a name="line.34"></a>
-<span class="sourceLineNo">035</span><a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.commons.logging.Log;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.commons.logging.LogFactory;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.conf.Configuration;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.Abortable;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HConstants;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.ReplicationPeerNotFoundException;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.TableName;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.client.HBaseAdmin;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.client.RegionLocator;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.replication.ReplicationFactory;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.replication.ReplicationPeer;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.replication.ReplicationPeerZKImpl;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.replication.ReplicationPeers;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.replication.ReplicationQueuesClient;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.replication.ReplicationQueuesClientArguments;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.63"></a>
+<span class="sourceLineNo">021</span>import java.io.Closeable;<a name="line.21"></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.Collection;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.HashMap;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.util.HashSet;<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.Map;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.util.Map.Entry;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.util.Set;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.util.TreeMap;<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.commons.logging.Log;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.commons.logging.LogFactory;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.conf.Configuration;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.Abortable;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.HConstants;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.ReplicationPeerNotFoundException;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.TableName;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.HBaseAdmin;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.RegionLocator;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.replication.ReplicationFactory;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.replication.ReplicationPeer;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.replication.ReplicationPeerZKImpl;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.replication.ReplicationPeers;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.replication.ReplicationQueuesClient;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.replication.ReplicationQueuesClientArguments;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>import com.google.common.annotations.VisibleForTesting;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import com.google.common.collect.Lists;<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> * <p><a name="line.66"></a>
@@ -281,7 +281,7 @@
<span class="sourceLineNo">273</span> @Deprecated<a name="line.273"></a>
<span class="sourceLineNo">274</span> public Map<String, ReplicationPeerConfig> listPeerConfigs() throws IOException {<a name="line.274"></a>
<span class="sourceLineNo">275</span> List<ReplicationPeerDescription> peers = this.admin.listReplicationPeers();<a name="line.275"></a>
-<span class="sourceLineNo">276</span> Map<String, ReplicationPeerConfig> result = new TreeMap<String, ReplicationPeerConfig>();<a name="line.276"></a>
+<span class="sourceLineNo">276</span> Map<String, ReplicationPeerConfig> result = new TreeMap<>();<a name="line.276"></a>
<span class="sourceLineNo">277</span> for (ReplicationPeerDescription peer : peers) {<a name="line.277"></a>
<span class="sourceLineNo">278</span> result.put(peer.getPeerId(), peer.getPeerConfig());<a name="line.278"></a>
<span class="sourceLineNo">279</span> }<a name="line.279"></a>
@@ -351,7 +351,7 @@
<span class="sourceLineNo">343</span> if (cfs == null || appendCfs == null || appendCfs.isEmpty()) {<a name="line.343"></a>
<span class="sourceLineNo">344</span> preTableCfs.put(table, null);<a name="line.344"></a>
<span class="sourceLineNo">345</span> } else {<a name="line.345"></a>
-<span class="sourceLineNo">346</span> Set<String> cfSet = new HashSet<String>(cfs);<a name="line.346"></a>
+<span class="sourceLineNo">346</span> Set<String> cfSet = new HashSet<>(cfs);<a name="line.346"></a>
<span class="sourceLineNo">347</span> cfSet.addAll(appendCfs);<a name="line.347"></a>
<span class="sourceLineNo">348</span> preTableCfs.put(table, Lists.newArrayList(cfSet));<a name="line.348"></a>
<span class="sourceLineNo">349</span> }<a name="line.349"></a>
@@ -408,7 +408,7 @@
<span class="sourceLineNo">400</span> if (cfs == null && (removeCfs == null || removeCfs.isEmpty())) {<a name="line.400"></a>
<span class="sourceLineNo">401</span> preTableCfs.remove(table);<a name="line.401"></a>
<span class="sourceLineNo">402</span> } else if (cfs != null && (removeCfs != null && !removeCfs.isEmpty())) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span> Set<String> cfSet = new HashSet<String>(cfs);<a name="line.403"></a>
+<span class="sourceLineNo">403</span> Set<String> cfSet = new HashSet<>(cfs);<a name="line.403"></a>
<span class="sourceLineNo">404</span> cfSet.removeAll(removeCfs);<a name="line.404"></a>
<span class="sourceLineNo">405</span> if (cfSet.isEmpty()) {<a name="line.405"></a>
<span class="sourceLineNo">406</span> preTableCfs.remove(table);<a name="line.406"></a>
@@ -492,7 +492,7 @@
<span class="sourceLineNo">484</span> tableCFs.getColumnFamilyMap()<a name="line.484"></a>
<span class="sourceLineNo">485</span> .forEach(<a name="line.485"></a>
<span class="sourceLineNo">486</span> (cf, scope) -> {<a name="line.486"></a>
-<span class="sourceLineNo">487</span> HashMap<String, String> replicationEntry = new HashMap<String, String>();<a name="line.487"></a>
+<span class="sourceLineNo">487</span> HashMap<String, String> replicationEntry = new HashMap<>();<a name="line.487"></a>
<span class="sourceLineNo">488</span> replicationEntry.put(TNAME, table);<a name="line.488"></a>
<span class="sourceLineNo">489</span> replicationEntry.put(CFNAME, cf);<a name="line.489"></a>
<span class="sourceLineNo">490</span> replicationEntry.put(REPLICATIONTYPE,<a name="line.490"></a>
@@ -529,66 +529,71 @@
<span class="sourceLineNo">521</span> }<a name="line.521"></a>
<span class="sourceLineNo">522</span><a name="line.522"></a>
<span class="sourceLineNo">523</span> @VisibleForTesting<a name="line.523"></a>
-<span class="sourceLineNo">524</span> public void peerAdded(String id) throws ReplicationException {<a name="line.524"></a>
-<span class="sourceLineNo">525</span> this.replicationPeers.peerConnected(id);<a name="line.525"></a>
-<span class="sourceLineNo">526</span> }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span> @VisibleForTesting<a name="line.528"></a>
-<span class="sourceLineNo">529</span> List<ReplicationPeer> listReplicationPeers() throws IOException {<a name="line.529"></a>
-<span class="sourceLineNo">530</span> Map<String, ReplicationPeerConfig> peers = listPeerConfigs();<a name="line.530"></a>
-<span class="sourceLineNo">531</span> if (peers == null || peers.size() <= 0) {<a name="line.531"></a>
-<span class="sourceLineNo">532</span> return null;<a name="line.532"></a>
-<span class="sourceLineNo">533</span> }<a name="line.533"></a>
-<span class="sourceLineNo">534</span> List<ReplicationPeer> listOfPeers = new ArrayList<ReplicationPeer>(peers.size());<a name="line.534"></a>
-<span class="sourceLineNo">535</span> for (Entry<String, ReplicationPeerConfig> peerEntry : peers.entrySet()) {<a name="line.535"></a>
-<span class="sourceLineNo">536</span> String peerId = peerEntry.getKey();<a name="line.536"></a>
-<span class="sourceLineNo">537</span> try {<a name="line.537"></a>
-<span class="sourceLineNo">538</span> Pair<ReplicationPeerConfig, Configuration> pair = this.replicationPeers.getPeerConf(peerId);<a name="line.538"></a>
-<span class="sourceLineNo">539</span> Configuration peerConf = pair.getSecond();<a name="line.539"></a>
-<span class="sourceLineNo">540</span> ReplicationPeer peer = new ReplicationPeerZKImpl(zkw, pair.getSecond(),<a name="line.540"></a>
-<span class="sourceLineNo">541</span> peerId, pair.getFirst(), this.connection);<a name="line.541"></a>
-<span class="sourceLineNo">542</span> listOfPeers.add(peer);<a name="line.542"></a>
-<span class="sourceLineNo">543</span> } catch (ReplicationException e) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span> LOG.warn("Failed to get valid replication peers. "<a name="line.544"></a>
-<span class="sourceLineNo">545</span> + "Error connecting to peer cluster with peerId=" + peerId + ". Error message="<a name="line.545"></a>
-<span class="sourceLineNo">546</span> + e.getMessage());<a name="line.546"></a>
-<span class="sourceLineNo">547</span> LOG.debug("Failure details to get valid replication peers.", e);<a name="line.547"></a>
-<span class="sourceLineNo">548</span> continue;<a name="line.548"></a>
-<span class="sourceLineNo">549</span> }<a name="line.549"></a>
-<span class="sourceLineNo">550</span> }<a name="line.550"></a>
-<span class="sourceLineNo">551</span> return listOfPeers;<a name="line.551"></a>
-<span class="sourceLineNo">552</span> }<a name="line.552"></a>
-<span class="sourceLineNo">553</span><a name="line.553"></a>
-<span class="sourceLineNo">554</span> /**<a name="line.554"></a>
-<span class="sourceLineNo">555</span> * Set a namespace in the peer config means that all tables in this namespace<a name="line.555"></a>
-<span class="sourceLineNo">556</span> * will be replicated to the peer cluster.<a name="line.556"></a>
-<span class="sourceLineNo">557</span> *<a name="line.557"></a>
-<span class="sourceLineNo">558</span> * 1. If you already have set a namespace in the peer config, then you can't set any table<a name="line.558"></a>
-<span class="sourceLineNo">559</span> * of this namespace to the peer config.<a name="line.559"></a>
-<span class="sourceLineNo">560</span> * 2. If you already have set a table in the peer config, then you can't set this table's<a name="line.560"></a>
-<span class="sourceLineNo">561</span> * namespace to the peer config.<a name="line.561"></a>
+<span class="sourceLineNo">524</span> @Deprecated<a name="line.524"></a>
+<span class="sourceLineNo">525</span> public void peerAdded(String id) throws ReplicationException {<a name="line.525"></a>
+<span class="sourceLineNo">526</span> this.replicationPeers.peerConnected(id);<a name="line.526"></a>
+<span class="sourceLineNo">527</span> }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span> /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span> * @deprecated use {@link org.apache.hadoop.hbase.client.Admin#listReplicationPeers()} instead<a name="line.530"></a>
+<span class="sourceLineNo">531</span> */<a name="line.531"></a>
+<span class="sourceLineNo">532</span> @VisibleForTesting<a name="line.532"></a>
+<span class="sourceLineNo">533</span> @Deprecated<a name="line.533"></a>
+<span class="sourceLineNo">534</span> List<ReplicationPeer> listReplicationPeers() throws IOException {<a name="line.534"></a>
+<span class="sourceLineNo">535</span> Map<String, ReplicationPeerConfig> peers = listPeerConfigs();<a name="line.535"></a>
+<span class="sourceLineNo">536</span> if (peers == null || peers.size() <= 0) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span> return null;<a name="line.537"></a>
+<span class="sourceLineNo">538</span> }<a name="line.538"></a>
+<span class="sourceLineNo">539</span> List<ReplicationPeer> listOfPeers = new ArrayList<>(peers.size());<a name="line.539"></a>
+<span class="sourceLineNo">540</span> for (Entry<String, ReplicationPeerConfig> peerEntry : peers.entrySet()) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span> String peerId = peerEntry.getKey();<a name="line.541"></a>
+<span class="sourceLineNo">542</span> try {<a name="line.542"></a>
+<span class="sourceLineNo">543</span> Pair<ReplicationPeerConfig, Configuration> pair = this.replicationPeers.getPeerConf(peerId);<a name="line.543"></a>
+<span class="sourceLineNo">544</span> Configuration peerConf = pair.getSecond();<a name="line.544"></a>
+<span class="sourceLineNo">545</span> ReplicationPeer peer = new ReplicationPeerZKImpl(zkw, pair.getSecond(),<a name="line.545"></a>
+<span class="sourceLineNo">546</span> peerId, pair.getFirst(), this.connection);<a name="line.546"></a>
+<span class="sourceLineNo">547</span> listOfPeers.add(peer);<a name="line.547"></a>
+<span class="sourceLineNo">548</span> } catch (ReplicationException e) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span> LOG.warn("Failed to get valid replication peers. "<a name="line.549"></a>
+<span class="sourceLineNo">550</span> + "Error connecting to peer cluster with peerId=" + peerId + ". Error message="<a name="line.550"></a>
+<span class="sourceLineNo">551</span> + e.getMessage());<a name="line.551"></a>
+<span class="sourceLineNo">552</span> LOG.debug("Failure details to get valid replication peers.", e);<a name="line.552"></a>
+<span class="sourceLineNo">553</span> continue;<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> return listOfPeers;<a name="line.556"></a>
+<span class="sourceLineNo">557</span> }<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> * Set a namespace in the peer config means that all tables in this namespace<a name="line.560"></a>
+<span class="sourceLineNo">561</span> * will be replicated to the peer cluster.<a name="line.561"></a>
<span class="sourceLineNo">562</span> *<a name="line.562"></a>
-<span class="sourceLineNo">563</span> * @param namespaces<a name="line.563"></a>
-<span class="sourceLineNo">564</span> * @param tableCfs<a name="line.564"></a>
-<span class="sourceLineNo">565</span> * @throws ReplicationException<a name="line.565"></a>
-<span class="sourceLineNo">566</span> */<a name="line.566"></a>
-<span class="sourceLineNo">567</span> private void checkNamespacesAndTableCfsConfigConflict(Set<String> namespaces,<a name="line.567"></a>
-<span class="sourceLineNo">568</span> Map<TableName, ? extends Collection<String>> tableCfs) throws ReplicationException {<a name="line.568"></a>
-<span class="sourceLineNo">569</span> if (namespaces == null || namespaces.isEmpty()) {<a name="line.569"></a>
-<span class="sourceLineNo">570</span> return;<a name="line.570"></a>
-<span class="sourceLineNo">571</span> }<a name="line.571"></a>
-<span class="sourceLineNo">572</span> if (tableCfs == null || tableCfs.isEmpty()) {<a name="line.572"></a>
-<span class="sourceLineNo">573</span> return;<a name="line.573"></a>
-<span class="sourceLineNo">574</span> }<a name="line.574"></a>
-<span class="sourceLineNo">575</span> for (Map.Entry<TableName, ? extends Collection<String>> entry : tableCfs.entrySet()) {<a name="line.575"></a>
-<span class="sourceLineNo">576</span> TableName table = entry.getKey();<a name="line.576"></a>
-<span class="sourceLineNo">577</span> if (namespaces.contains(table.getNamespaceAsString())) {<a name="line.577"></a>
-<span class="sourceLineNo">578</span> throw new ReplicationException(<a name="line.578"></a>
-<span class="sourceLineNo">579</span> "Table-cfs config conflict with namespaces config in peer");<a name="line.579"></a>
-<span class="sourceLineNo">580</span> }<a name="line.580"></a>
-<span class="sourceLineNo">581</span> }<a name="line.581"></a>
-<span class="sourceLineNo">582</span> }<a name="line.582"></a>
-<span class="sourceLineNo">583</span>}<a name="line.583"></a>
+<span class="sourceLineNo">563</span> * 1. If you already have set a namespace in the peer config, then you can't set any table<a name="line.563"></a>
+<span class="sourceLineNo">564</span> * of this namespace to the peer config.<a name="line.564"></a>
+<span class="sourceLineNo">565</span> * 2. If you already have set a table in the peer config, then you can't set this table's<a name="line.565"></a>
+<span class="sourceLineNo">566</span> * namespace to the peer config.<a name="line.566"></a>
+<span class="sourceLineNo">567</span> *<a name="line.567"></a>
+<span class="sourceLineNo">568</span> * @param namespaces<a name="line.568"></a>
+<span class="sourceLineNo">569</span> * @param tableCfs<a name="line.569"></a>
+<span class="sourceLineNo">570</span> * @throws ReplicationException<a name="line.570"></a>
+<span class="sourceLineNo">571</span> */<a name="line.571"></a>
+<span class="sourceLineNo">572</span> private void checkNamespacesAndTableCfsConfigConflict(Set<String> namespaces,<a name="line.572"></a>
+<span class="sourceLineNo">573</span> Map<TableName, ? extends Collection<String>> tableCfs) throws ReplicationException {<a name="line.573"></a>
+<span class="sourceLineNo">574</span> if (namespaces == null || namespaces.isEmpty()) {<a name="line.574"></a>
+<span class="sourceLineNo">575</span> return;<a name="line.575"></a>
+<span class="sourceLineNo">576</span> }<a name="line.576"></a>
+<span class="sourceLineNo">577</span> if (tableCfs == null || tableCfs.isEmpty()) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span> return;<a name="line.578"></a>
+<span class="sourceLineNo">579</span> }<a name="line.579"></a>
+<span class="sourceLineNo">580</span> for (Map.Entry<TableName, ? extends Collection<String>> entry : tableCfs.entrySet()) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span> TableName table = entry.getKey();<a name="line.581"></a>
+<span class="sourceLineNo">582</span> if (namespaces.contains(table.getNamespaceAsString())) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span> throw new ReplicationException(<a name="line.583"></a>
+<span class="sourceLineNo">584</span> "Table-cfs config conflict with namespaces config in peer");<a name="line.584"></a>
+<span class="sourceLineNo">585</span> }<a name="line.585"></a>
+<span class="sourceLineNo">586</span> }<a name="line.586"></a>
+<span class="sourceLineNo">587</span> }<a name="line.587"></a>
+<span class="sourceLineNo">588</span>}<a name="line.588"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/errorhandling/ForeignException.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/errorhandling/ForeignException.html b/apidocs/src-html/org/apache/hadoop/hbase/errorhandling/ForeignException.html
index ab67bc0..8540fe3 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/errorhandling/ForeignException.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/errorhandling/ForeignException.html
@@ -115,92 +115,91 @@
<span class="sourceLineNo">107</span> // if there is no stack trace, ignore it and just return the message<a name="line.107"></a>
<span class="sourceLineNo">108</span> if (trace == null) return null;<a name="line.108"></a>
<span class="sourceLineNo">109</span> // build the stack trace for the message<a name="line.109"></a>
-<span class="sourceLineNo">110</span> List<StackTraceElementMessage> pbTrace =<a name="line.110"></a>
-<span class="sourceLineNo">111</span> new ArrayList<StackTraceElementMessage>(trace.length);<a name="line.111"></a>
-<span class="sourceLineNo">112</span> for (StackTraceElement elem : trace) {<a name="line.112"></a>
-<span class="sourceLineNo">113</span> StackTraceElementMessage.Builder stackBuilder = StackTraceElementMessage.newBuilder();<a name="line.113"></a>
-<span class="sourceLineNo">114</span> stackBuilder.setDeclaringClass(elem.getClassName());<a name="line.114"></a>
-<span class="sourceLineNo">115</span> stackBuilder.setFileName(elem.getFileName());<a name="line.115"></a>
-<span class="sourceLineNo">116</span> stackBuilder.setLineNumber(elem.getLineNumber());<a name="line.116"></a>
-<span class="sourceLineNo">117</span> stackBuilder.setMethodName(elem.getMethodName());<a name="line.117"></a>
-<span class="sourceLineNo">118</span> pbTrace.add(stackBuilder.build());<a name="line.118"></a>
-<span class="sourceLineNo">119</span> }<a name="line.119"></a>
-<span class="sourceLineNo">120</span> return pbTrace;<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> /**<a name="line.123"></a>
-<span class="sourceLineNo">124</span> * This is a Proxy Throwable that contains the information of the original remote exception<a name="line.124"></a>
-<span class="sourceLineNo">125</span> */<a name="line.125"></a>
-<span class="sourceLineNo">126</span> private static class ProxyThrowable extends Throwable {<a name="line.126"></a>
-<span class="sourceLineNo">127</span> ProxyThrowable(String msg, StackTraceElement[] trace) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span> super(msg);<a name="line.128"></a>
-<span class="sourceLineNo">129</span> this.setStackTrace(trace);<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>
-<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> * Converts a ForeignException to an array of bytes.<a name="line.134"></a>
-<span class="sourceLineNo">135</span> * @param source the name of the external exception source<a name="line.135"></a>
-<span class="sourceLineNo">136</span> * @param t the "local" external exception (local)<a name="line.136"></a>
-<span class="sourceLineNo">137</span> * @return protobuf serialized version of ForeignException<a name="line.137"></a>
-<span class="sourceLineNo">138</span> */<a name="line.138"></a>
-<span class="sourceLineNo">139</span> public static byte[] serialize(String source, Throwable t) {<a name="line.139"></a>
-<span class="sourceLineNo">140</span> GenericExceptionMessage.Builder gemBuilder = GenericExceptionMessage.newBuilder();<a name="line.140"></a>
-<span class="sourceLineNo">141</span> gemBuilder.setClassName(t.getClass().getName());<a name="line.141"></a>
-<span class="sourceLineNo">142</span> if (t.getMessage() != null) {<a name="line.142"></a>
-<span class="sourceLineNo">143</span> gemBuilder.setMessage(t.getMessage());<a name="line.143"></a>
-<span class="sourceLineNo">144</span> }<a name="line.144"></a>
-<span class="sourceLineNo">145</span> // set the stack trace, if there is one<a name="line.145"></a>
-<span class="sourceLineNo">146</span> List<StackTraceElementMessage> stack =<a name="line.146"></a>
-<span class="sourceLineNo">147</span> ForeignException.toStackTraceElementMessages(t.getStackTrace());<a name="line.147"></a>
-<span class="sourceLineNo">148</span> if (stack != null) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span> gemBuilder.addAllTrace(stack);<a name="line.149"></a>
-<span class="sourceLineNo">150</span> }<a name="line.150"></a>
-<span class="sourceLineNo">151</span> GenericExceptionMessage payload = gemBuilder.build();<a name="line.151"></a>
-<span class="sourceLineNo">152</span> ForeignExceptionMessage.Builder exception = ForeignExceptionMessage.newBuilder();<a name="line.152"></a>
-<span class="sourceLineNo">153</span> exception.setGenericException(payload).setSource(source);<a name="line.153"></a>
-<span class="sourceLineNo">154</span> ForeignExceptionMessage eem = exception.build();<a name="line.154"></a>
-<span class="sourceLineNo">155</span> return eem.toByteArray();<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> /**<a name="line.158"></a>
-<span class="sourceLineNo">159</span> * Takes a series of bytes and tries to generate an ForeignException instance for it.<a name="line.159"></a>
-<span class="sourceLineNo">160</span> * @param bytes<a name="line.160"></a>
-<span class="sourceLineNo">161</span> * @return the ForeignExcpetion instance<a name="line.161"></a>
-<span class="sourceLineNo">162</span> * @throws InvalidProtocolBufferException if there was deserialization problem this is thrown.<a name="line.162"></a>
-<span class="sourceLineNo">163</span> * @throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException <a name="line.163"></a>
-<span class="sourceLineNo">164</span> */<a name="line.164"></a>
-<span class="sourceLineNo">165</span> public static ForeignException deserialize(byte[] bytes)<a name="line.165"></a>
-<span class="sourceLineNo">166</span> throws IOException {<a name="line.166"></a>
-<span class="sourceLineNo">167</span> // figure out the data we need to pass<a name="line.167"></a>
-<span class="sourceLineNo">168</span> ForeignExceptionMessage eem = ForeignExceptionMessage.parseFrom(bytes);<a name="line.168"></a>
-<span class="sourceLineNo">169</span> GenericExceptionMessage gem = eem.getGenericException();<a name="line.169"></a>
-<span class="sourceLineNo">170</span> StackTraceElement [] trace = ForeignException.toStackTrace(gem.getTraceList());<a name="line.170"></a>
-<span class="sourceLineNo">171</span> ProxyThrowable dfe = new ProxyThrowable(gem.getMessage(), trace);<a name="line.171"></a>
-<span class="sourceLineNo">172</span> ForeignException e = new ForeignException(eem.getSource(), dfe);<a name="line.172"></a>
-<span class="sourceLineNo">173</span> return e;<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> * Unwind a serialized array of {@link StackTraceElementMessage}s to a<a name="line.177"></a>
-<span class="sourceLineNo">178</span> * {@link StackTraceElement}s.<a name="line.178"></a>
-<span class="sourceLineNo">179</span> * @param traceList list that was serialized<a name="line.179"></a>
-<span class="sourceLineNo">180</span> * @return the deserialized list or <tt>null</tt> if it couldn't be unwound (e.g. wasn't set on<a name="line.180"></a>
-<span class="sourceLineNo">181</span> * the sender).<a name="line.181"></a>
-<span class="sourceLineNo">182</span> */<a name="line.182"></a>
-<span class="sourceLineNo">183</span> private static StackTraceElement[] toStackTrace(List<StackTraceElementMessage> traceList) {<a name="line.183"></a>
-<span class="sourceLineNo">184</span> if (traceList == null || traceList.isEmpty()) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span> return new StackTraceElement[0]; // empty array<a name="line.185"></a>
-<span class="sourceLineNo">186</span> }<a name="line.186"></a>
-<span class="sourceLineNo">187</span> StackTraceElement[] trace = new StackTraceElement[traceList.size()];<a name="line.187"></a>
-<span class="sourceLineNo">188</span> for (int i = 0; i < traceList.size(); i++) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span> StackTraceElementMessage elem = traceList.get(i);<a name="line.189"></a>
-<span class="sourceLineNo">190</span> trace[i] = new StackTraceElement(<a name="line.190"></a>
-<span class="sourceLineNo">191</span> elem.getDeclaringClass(), elem.getMethodName(), elem.getFileName(), elem.getLineNumber());<a name="line.191"></a>
-<span class="sourceLineNo">192</span> }<a name="line.192"></a>
-<span class="sourceLineNo">193</span> return trace;<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">110</span> List<StackTraceElementMessage> pbTrace = new ArrayList<>(trace.length);<a name="line.110"></a>
+<span class="sourceLineNo">111</span> for (StackTraceElement elem : trace) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span> StackTraceElementMessage.Builder stackBuilder = StackTraceElementMessage.newBuilder();<a name="line.112"></a>
+<span class="sourceLineNo">113</span> stackBuilder.setDeclaringClass(elem.getClassName());<a name="line.113"></a>
+<span class="sourceLineNo">114</span> stackBuilder.setFileName(elem.getFileName());<a name="line.114"></a>
+<span class="sourceLineNo">115</span> stackBuilder.setLineNumber(elem.getLineNumber());<a name="line.115"></a>
+<span class="sourceLineNo">116</span> stackBuilder.setMethodName(elem.getMethodName());<a name="line.116"></a>
+<span class="sourceLineNo">117</span> pbTrace.add(stackBuilder.build());<a name="line.117"></a>
+<span class="sourceLineNo">118</span> }<a name="line.118"></a>
+<span class="sourceLineNo">119</span> return pbTrace;<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> /**<a name="line.122"></a>
+<span class="sourceLineNo">123</span> * This is a Proxy Throwable that contains the information of the original remote exception<a name="line.123"></a>
+<span class="sourceLineNo">124</span> */<a name="line.124"></a>
+<span class="sourceLineNo">125</span> private static class ProxyThrowable extends Throwable {<a name="line.125"></a>
+<span class="sourceLineNo">126</span> ProxyThrowable(String msg, StackTraceElement[] trace) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span> super(msg);<a name="line.127"></a>
+<span class="sourceLineNo">128</span> this.setStackTrace(trace);<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><a name="line.131"></a>
+<span class="sourceLineNo">132</span> /**<a name="line.132"></a>
+<span class="sourceLineNo">133</span> * Converts a ForeignException to an array of bytes.<a name="line.133"></a>
+<span class="sourceLineNo">134</span> * @param source the name of the external exception source<a name="line.134"></a>
+<span class="sourceLineNo">135</span> * @param t the "local" external exception (local)<a name="line.135"></a>
+<span class="sourceLineNo">136</span> * @return protobuf serialized version of ForeignException<a name="line.136"></a>
+<span class="sourceLineNo">137</span> */<a name="line.137"></a>
+<span class="sourceLineNo">138</span> public static byte[] serialize(String source, Throwable t) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span> GenericExceptionMessage.Builder gemBuilder = GenericExceptionMessage.newBuilder();<a name="line.139"></a>
+<span class="sourceLineNo">140</span> gemBuilder.setClassName(t.getClass().getName());<a name="line.140"></a>
+<span class="sourceLineNo">141</span> if (t.getMessage() != null) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span> gemBuilder.setMessage(t.getMessage());<a name="line.142"></a>
+<span class="sourceLineNo">143</span> }<a name="line.143"></a>
+<span class="sourceLineNo">144</span> // set the stack trace, if there is one<a name="line.144"></a>
+<span class="sourceLineNo">145</span> List<StackTraceElementMessage> stack =<a name="line.145"></a>
+<span class="sourceLineNo">146</span> ForeignException.toStackTraceElementMessages(t.getStackTrace());<a name="line.146"></a>
+<span class="sourceLineNo">147</span> if (stack != null) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span> gemBuilder.addAllTrace(stack);<a name="line.148"></a>
+<span class="sourceLineNo">149</span> }<a name="line.149"></a>
+<span class="sourceLineNo">150</span> GenericExceptionMessage payload = gemBuilder.build();<a name="line.150"></a>
+<span class="sourceLineNo">151</span> ForeignExceptionMessage.Builder exception = ForeignExceptionMessage.newBuilder();<a name="line.151"></a>
+<span class="sourceLineNo">152</span> exception.setGenericException(payload).setSource(source);<a name="line.152"></a>
+<span class="sourceLineNo">153</span> ForeignExceptionMessage eem = exception.build();<a name="line.153"></a>
+<span class="sourceLineNo">154</span> return eem.toByteArray();<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> * Takes a series of bytes and tries to generate an ForeignException instance for it.<a name="line.158"></a>
+<span class="sourceLineNo">159</span> * @param bytes<a name="line.159"></a>
+<span class="sourceLineNo">160</span> * @return the ForeignExcpetion instance<a name="line.160"></a>
+<span class="sourceLineNo">161</span> * @throws InvalidProtocolBufferException if there was deserialization problem this is thrown.<a name="line.161"></a>
+<span class="sourceLineNo">162</span> * @throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException <a name="line.162"></a>
+<span class="sourceLineNo">163</span> */<a name="line.163"></a>
+<span class="sourceLineNo">164</span> public static ForeignException deserialize(byte[] bytes)<a name="line.164"></a>
+<span class="sourceLineNo">165</span> throws IOException {<a name="line.165"></a>
+<span class="sourceLineNo">166</span> // figure out the data we need to pass<a name="line.166"></a>
+<span class="sourceLineNo">167</span> ForeignExceptionMessage eem = ForeignExceptionMessage.parseFrom(bytes);<a name="line.167"></a>
+<span class="sourceLineNo">168</span> GenericExceptionMessage gem = eem.getGenericException();<a name="line.168"></a>
+<span class="sourceLineNo">169</span> StackTraceElement [] trace = ForeignException.toStackTrace(gem.getTraceList());<a name="line.169"></a>
+<span class="sourceLineNo">170</span> ProxyThrowable dfe = new ProxyThrowable(gem.getMessage(), trace);<a name="line.170"></a>
+<span class="sourceLineNo">171</span> ForeignException e = new ForeignException(eem.getSource(), dfe);<a name="line.171"></a>
+<span class="sourceLineNo">172</span> return e;<a name="line.172"></a>
+<span class="sourceLineNo">173</span> }<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> * Unwind a serialized array of {@link StackTraceElementMessage}s to a<a name="line.176"></a>
+<span class="sourceLineNo">177</span> * {@link StackTraceElement}s.<a name="line.177"></a>
+<span class="sourceLineNo">178</span> * @param traceList list that was serialized<a name="line.178"></a>
+<span class="sourceLineNo">179</span> * @return the deserialized list or <tt>null</tt> if it couldn't be unwound (e.g. wasn't set on<a name="line.179"></a>
+<span class="sourceLineNo">180</span> * the sender).<a name="line.180"></a>
+<span class="sourceLineNo">181</span> */<a name="line.181"></a>
+<span class="sourceLineNo">182</span> private static StackTraceElement[] toStackTrace(List<StackTraceElementMessage> traceList) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span> if (traceList == null || traceList.isEmpty()) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span> return new StackTraceElement[0]; // empty array<a name="line.184"></a>
+<span class="sourceLineNo">185</span> }<a name="line.185"></a>
+<span class="sourceLineNo">186</span> StackTraceElement[] trace = new StackTraceElement[traceList.size()];<a name="line.186"></a>
+<span class="sourceLineNo">187</span> for (int i = 0; i < traceList.size(); i++) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span> StackTraceElementMessage elem = traceList.get(i);<a name="line.188"></a>
+<span class="sourceLineNo">189</span> trace[i] = new StackTraceElement(<a name="line.189"></a>
+<span class="sourceLineNo">190</span> elem.getDeclaringClass(), elem.getMethodName(), elem.getFileName(), elem.getLineNumber());<a name="line.190"></a>
+<span class="sourceLineNo">191</span> }<a name="line.191"></a>
+<span class="sourceLineNo">192</span> return trace;<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>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html b/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html
index 52dbaf6..bb7c162 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html
@@ -185,7 +185,7 @@
<span class="sourceLineNo">177</span> " can only be used with EQUAL and NOT_EQUAL");<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> ArrayList<Object> arguments = new ArrayList<Object>(2);<a name="line.180"></a>
+<span class="sourceLineNo">180</span> ArrayList<Object> arguments = new ArrayList<>(2);<a name="line.180"></a>
<span class="sourceLineNo">181</span> arguments.add(compareOp);<a name="line.181"></a>
<span class="sourceLineNo">182</span> arguments.add(comparator);<a name="line.182"></a>
<span class="sourceLineNo">183</span> return arguments;<a name="line.183"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.html b/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.html
index 52dbaf6..bb7c162 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.html
@@ -185,7 +185,7 @@
<span class="sourceLineNo">177</span> " can only be used with EQUAL and NOT_EQUAL");<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> ArrayList<Object> arguments = new ArrayList<Object>(2);<a name="line.180"></a>
+<span class="sourceLineNo">180</span> ArrayList<Object> arguments = new ArrayList<>(2);<a name="line.180"></a>
<span class="sourceLineNo">181</span> arguments.add(compareOp);<a name="line.181"></a>
<span class="sourceLineNo">182</span> arguments.add(comparator);<a name="line.182"></a>
<span class="sourceLineNo">183</span> return arguments;<a name="line.183"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/filter/DependentColumnFilter.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/filter/DependentColumnFilter.html b/apidocs/src-html/org/apache/hadoop/hbase/filter/DependentColumnFilter.html
index ef89262..68f3990 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/filter/DependentColumnFilter.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/filter/DependentColumnFilter.html
@@ -62,7 +62,7 @@
<span class="sourceLineNo">054</span> protected byte[] columnQualifier;<a name="line.54"></a>
<span class="sourceLineNo">055</span> protected boolean dropDependentColumn;<a name="line.55"></a>
<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span> protected Set<Long> stampSet = new HashSet<Long>();<a name="line.57"></a>
+<span class="sourceLineNo">057</span> protected Set<Long> stampSet = new HashSet<>();<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> * Build a dependent column filter with value checking<a name="line.60"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.Operator.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.Operator.html b/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.Operator.html
index a7878d7..99bb715 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.Operator.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.Operator.html
@@ -461,7 +461,7 @@
<span class="sourceLineNo">453</span> throw new DeserializationException(e);<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> List<Filter> rowFilters = new ArrayList<Filter>(proto.getFiltersCount());<a name="line.456"></a>
+<span class="sourceLineNo">456</span> List<Filter> rowFilters = new ArrayList<>(proto.getFiltersCount());<a name="line.456"></a>
<span class="sourceLineNo">457</span> try {<a name="line.457"></a>
<span class="sourceLineNo">458</span> List<FilterProtos.Filter> filtersList = proto.getFiltersList();<a name="line.458"></a>
<span class="sourceLineNo">459</span> int listSize = filtersList.size();<a name="line.459"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.html b/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.html
index a7878d7..99bb715 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.html
@@ -461,7 +461,7 @@
<span class="sourceLineNo">453</span> throw new DeserializationException(e);<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> List<Filter> rowFilters = new ArrayList<Filter>(proto.getFiltersCount());<a name="line.456"></a>
+<span class="sourceLineNo">456</span> List<Filter> rowFilters = new ArrayList<>(proto.getFiltersCount());<a name="line.456"></a>
<span class="sourceLineNo">457</span> try {<a name="line.457"></a>
<span class="sourceLineNo">458</span> List<FilterProtos.Filter> filtersList = proto.getFiltersList();<a name="line.458"></a>
<span class="sourceLineNo">459</span> int listSize = filtersList.size();<a name="line.459"></a>
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html b/apidocs/src-html/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html
index 6548544..b1d4056 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html
@@ -49,7 +49,7 @@
<span class="sourceLineNo">041</span> * Note : It may emit KVs which do not have the given columns in them, if<a name="line.41"></a>
<span class="sourceLineNo">042</span> * these KVs happen to occur before a KV which does have a match. Given this<a name="line.42"></a>
<span class="sourceLineNo">043</span> * caveat, this filter is only useful for special cases<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * like {@link org.apache.hadoop.hbase.mapreduce.RowCounter}.<a name="line.44"></a>
+<span class="sourceLineNo">044</span> * like org.apache.hadoop.hbase.mapreduce.RowCounter.<a name="line.44"></a>
<span class="sourceLineNo">045</span> * <p><a name="line.45"></a>
<span class="sourceLineNo">046</span> * @deprecated Deprecated in 2.0. See HBASE-13347<a name="line.46"></a>
<span class="sourceLineNo">047</span> */<a name="line.47"></a>
@@ -116,7 +116,7 @@
<span class="sourceLineNo">108</span> throw new DeserializationException(e);<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> TreeSet<byte []> qualifiers = new TreeSet<byte []>(Bytes.BYTES_COMPARATOR);<a name="line.111"></a>
+<span class="sourceLineNo">111</span> TreeSet<byte []> qualifiers = new TreeSet<>(Bytes.BYTES_COMPARATOR);<a name="line.111"></a>
<span class="sourceLineNo">112</span> for (ByteString qualifier : proto.getQualifiersList()) {<a name="line.112"></a>
<span class="sourceLineNo">113</span> qualifiers.add(qualifier.toByteArray());<a name="line.113"></a>
<span class="sourceLineNo">114</span> }<a name="line.114"></a>