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/07/10 17:25:48 UTC

[01/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site d2d40e09b -> dbe3a233f


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html
index 7896c2f..9597ff9 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html
@@ -28,161 +28,249 @@
 <span class="sourceLineNo">020</span><a name="line.20"></a>
 <span class="sourceLineNo">021</span>import static org.junit.Assert.assertEquals;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import static org.junit.Assert.assertTrue;<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 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.Coprocessor;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.CoprocessorEnvironment;<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.HRegionInfo;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.junit.ClassRule;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.junit.Test;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.junit.experimental.categories.Category;<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>@Category({ SmallTests.class })<a name="line.42"></a>
-<span class="sourceLineNo">043</span>@SuppressWarnings("deprecation")<a name="line.43"></a>
-<span class="sourceLineNo">044</span>public class CoprocessorValidatorTest {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  @ClassRule<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.46"></a>
-<span class="sourceLineNo">047</span>      HBaseClassTestRule.forClass(CoprocessorValidatorTest.class);<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>  private CoprocessorValidator validator;<a name="line.49"></a>
-<span class="sourceLineNo">050</span><a name="line.50"></a>
-<span class="sourceLineNo">051</span>  public CoprocessorValidatorTest() {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    validator = new CoprocessorValidator();<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  }<a name="line.53"></a>
-<span class="sourceLineNo">054</span><a name="line.54"></a>
-<span class="sourceLineNo">055</span>  private static ClassLoader getClassLoader() {<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    return CoprocessorValidatorTest.class.getClassLoader();<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 String getFullClassName(String className) {<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    return CoprocessorValidatorTest.class.getName() + "$" + className;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  }<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  @SuppressWarnings({"rawtypes", "unused"})<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  private static class TestObserver implements Coprocessor {<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    @Override<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    public void start(CoprocessorEnvironment env) throws IOException {<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>    @Override<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    public void stop(CoprocessorEnvironment env) throws IOException {<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><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  @Test<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  public void testFilterObservers() throws Exception {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    String filterObservers = getFullClassName("TestObserver");<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    List&lt;String&gt; classNames = Lists.newArrayList(<a name="line.77"></a>
-<span class="sourceLineNo">078</span>        filterObservers, getClass().getName());<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    List&lt;String&gt; filteredClassNames = validator.filterObservers(getClassLoader(), classNames);<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span>    assertEquals(1, filteredClassNames.size());<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    assertEquals(filterObservers, filteredClassNames.get(0));<a name="line.82"></a>
+<span class="sourceLineNo">023</span>import static org.mockito.Mockito.doReturn;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import static org.mockito.Mockito.mock;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.io.IOException;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.io.InputStream;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.io.OutputStream;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.nio.file.Files;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.nio.file.Path;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.nio.file.Paths;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.util.ArrayList;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.List;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Optional;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.jar.JarOutputStream;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.regex.Pattern;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.zip.ZipEntry;<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HRegionInfo;<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.client.Admin;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.client.CoprocessorDescriptor;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.junit.ClassRule;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.junit.Test;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.junit.experimental.categories.Category;<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hbase.thirdparty.com.google.common.io.ByteStreams;<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>@Category({ SmallTests.class })<a name="line.58"></a>
+<span class="sourceLineNo">059</span>@SuppressWarnings("deprecation")<a name="line.59"></a>
+<span class="sourceLineNo">060</span>public class CoprocessorValidatorTest {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  @ClassRule<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      HBaseClassTestRule.forClass(CoprocessorValidatorTest.class);<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>  private CoprocessorValidator validator;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  public CoprocessorValidatorTest() {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    validator = new CoprocessorValidator();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    validator.setConf(HBaseConfiguration.create());<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>  private static ClassLoader getClassLoader() {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    return CoprocessorValidatorTest.class.getClassLoader();<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>  private static String getFullClassName(String className) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    return CoprocessorValidatorTest.class.getName() + "$" + className;<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>  private List&lt;CoprocessorViolation&gt; validateClass(String className) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    ClassLoader classLoader = getClass().getClassLoader();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    return validateClass(classLoader, className);<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>  private List&lt;CoprocessorViolation&gt; validate(String className) {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    ClassLoader classLoader = getClass().getClassLoader();<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    return validate(classLoader, className);<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>  private List&lt;CoprocessorViolation&gt; validate(ClassLoader classLoader, String className) {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    List&lt;String&gt; classNames = Lists.newArrayList(getClass().getName() + "$" + className);<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    return validator.validate(classLoader, classNames);<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>  /*<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * In this test case, we are try to load a not-existent class.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  @Test<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  public void testNoSuchClass() throws IOException {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    List&lt;CoprocessorViolation&gt; violations = validate("NoSuchClass");<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    assertEquals(1, violations.size());<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>    CoprocessorViolation violation = violations.get(0);<a name="line.103"></a>
+<span class="sourceLineNo">085</span>  private List&lt;CoprocessorViolation&gt; validateClass(ClassLoader classLoader, String className) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    List&lt;String&gt; classNames = Lists.newArrayList(getFullClassName(className));<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    List&lt;CoprocessorViolation&gt; violations = new ArrayList&lt;&gt;();<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>    validator.validateClasses(classLoader, classNames, violations);<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>    return violations;<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>   * In this test case, we are try to load a not-existent class.<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 testNoSuchClass() throws IOException {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    List&lt;CoprocessorViolation&gt; violations = validateClass("NoSuchClass");<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    assertEquals(1, violations.size());<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>    CoprocessorViolation violation = violations.get(0);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    assertEquals(getFullClassName("NoSuchClass"), violation.getClassName());<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    assertTrue(violation.getMessage().contains(<a name="line.105"></a>
-<span class="sourceLineNo">106</span>        "java.lang.ClassNotFoundException: " +<a name="line.106"></a>
-<span class="sourceLineNo">107</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$NoSuchClass"));<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>   * In this test case, we are validating MissingClass coprocessor, which<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   * references a missing class. With a special classloader, we prevent that<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * class to be loaded at runtime. It simulates similar cases where a class<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   * is no more on our classpath.<a name="line.114"></a>
-<span class="sourceLineNo">115</span>   * E.g. org.apache.hadoop.hbase.regionserver.wal.WALEdit was moved to<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   * org.apache.hadoop.hbase.wal, so class loading will fail on 2.0.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   */<a name="line.117"></a>
-<span class="sourceLineNo">118</span>  private static class MissingClass {<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>  @SuppressWarnings("unused")<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  private static class MissingClassObserver {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    public void method(MissingClass missingClass) {<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>  private static class MissingClassClassLoader extends ClassLoader {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    public MissingClassClassLoader() {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      super(getClassLoader());<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>    @Override<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    public Class&lt;?&gt; loadClass(String name) throws ClassNotFoundException {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      if (name.equals(getFullClassName("MissingClass"))) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>        throw new ClassNotFoundException(name);<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>      return super.findClass(name);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    }<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>  @Test<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  public void testMissingClass() throws IOException {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    MissingClassClassLoader missingClassClassLoader = new MissingClassClassLoader();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    List&lt;CoprocessorViolation&gt; violations = validate(missingClassClassLoader,<a name="line.145"></a>
-<span class="sourceLineNo">146</span>        "MissingClassObserver");<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    assertEquals(1, violations.size());<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>    CoprocessorViolation violation = violations.get(0);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    assertTrue(violation.getMessage().contains(<a name="line.151"></a>
-<span class="sourceLineNo">152</span>        "java.lang.ClassNotFoundException: " +<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$MissingClass"));<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>   * ObsoleteMethod coprocessor implements preCreateTable method which has<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   * HRegionInfo parameters. In our current implementation, we pass only<a name="line.158"></a>
-<span class="sourceLineNo">159</span>   * RegionInfo parameters, so this method won't be called by HBase at all.<a name="line.159"></a>
-<span class="sourceLineNo">160</span>   */<a name="line.160"></a>
-<span class="sourceLineNo">161</span>  @SuppressWarnings("unused")<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  private static class ObsoleteMethodObserver /* implements MasterObserver */ {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    public void preCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        HTableDescriptor desc, HRegionInfo[] regions) throws IOException {<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>  @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public void testObsoleteMethod() throws IOException {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    List&lt;CoprocessorViolation&gt; violations = validate("ObsoleteMethodObserver");<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    assertEquals(1, violations.size());<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>    CoprocessorViolation violation = violations.get(0);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    assertEquals(Severity.WARNING, violation.getSeverity());<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    assertTrue(violation.getMessage().contains("was removed from new coprocessor API"));<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">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>    String stackTrace = Throwables.getStackTraceAsString(violation.getThrowable());<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    assertTrue(stackTrace.contains("java.lang.ClassNotFoundException: " +<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$NoSuchClass"));<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>  /*<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   * In this test case, we are validating MissingClass coprocessor, which<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   * references a missing class. With a special classloader, we prevent that<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   * class to be loaded at runtime. It simulates similar cases where a class<a name="line.114"></a>
+<span class="sourceLineNo">115</span>   * is no more on our classpath.<a name="line.115"></a>
+<span class="sourceLineNo">116</span>   * E.g. org.apache.hadoop.hbase.regionserver.wal.WALEdit was moved to<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   * org.apache.hadoop.hbase.wal, so class loading will fail on 2.0.<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   */<a name="line.118"></a>
+<span class="sourceLineNo">119</span>  private static class MissingClass {<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>  @SuppressWarnings("unused")<a name="line.122"></a>
+<span class="sourceLineNo">123</span>  private static class MissingClassObserver {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public void method(MissingClass missingClass) {<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>  private static class MissingClassClassLoader extends ClassLoader {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    public MissingClassClassLoader() {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      super(getClassLoader());<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>    @Override<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    public Class&lt;?&gt; loadClass(String name) throws ClassNotFoundException {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      if (name.equals(getFullClassName("MissingClass"))) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        throw new ClassNotFoundException(name);<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>      return super.findClass(name);<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>  @Test<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  public void testMissingClass() throws IOException {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    MissingClassClassLoader missingClassClassLoader = new MissingClassClassLoader();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    List&lt;CoprocessorViolation&gt; violations = validateClass(missingClassClassLoader,<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        "MissingClassObserver");<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    assertEquals(1, violations.size());<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    CoprocessorViolation violation = violations.get(0);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    assertEquals(getFullClassName("MissingClassObserver"), violation.getClassName());<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>    String stackTrace = Throwables.getStackTraceAsString(violation.getThrowable());<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    assertTrue(stackTrace.contains("java.lang.ClassNotFoundException: " +<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$MissingClass"));<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>   * ObsoleteMethod coprocessor implements preCreateTable method which has<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   * HRegionInfo parameters. In our current implementation, we pass only<a name="line.161"></a>
+<span class="sourceLineNo">162</span>   * RegionInfo parameters, so this method won't be called by HBase at all.<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  @SuppressWarnings("unused")<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  private static class ObsoleteMethodObserver /* implements MasterObserver */ {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    public void preCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        HTableDescriptor desc, HRegionInfo[] regions) throws IOException {<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>  @Test<a name="line.171"></a>
+<span class="sourceLineNo">172</span>  public void testObsoleteMethod() throws IOException {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    List&lt;CoprocessorViolation&gt; violations = validateClass("ObsoleteMethodObserver");<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    assertEquals(1, violations.size());<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>    CoprocessorViolation violation = violations.get(0);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    assertEquals(Severity.WARNING, violation.getSeverity());<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    assertEquals(getFullClassName("ObsoleteMethodObserver"), violation.getClassName());<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    assertTrue(violation.getMessage().contains("was removed from new coprocessor API"));<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>  private List&lt;CoprocessorViolation&gt; validateTable(String jarFile, String className)<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      throws IOException {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    Pattern pattern = Pattern.compile(".*");<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>    Admin admin = mock(Admin.class);<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>    TableDescriptor tableDescriptor = mock(TableDescriptor.class);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    List&lt;TableDescriptor&gt; tableDescriptors = Lists.newArrayList(tableDescriptor);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    doReturn(tableDescriptors).when(admin).listTableDescriptors(pattern);<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>    CoprocessorDescriptor coprocessorDescriptor = mock(CoprocessorDescriptor.class);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    List&lt;CoprocessorDescriptor&gt; coprocessorDescriptors =<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        Lists.newArrayList(coprocessorDescriptor);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    doReturn(coprocessorDescriptors).when(tableDescriptor).getCoprocessorDescriptors();<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>    doReturn(getFullClassName(className)).when(coprocessorDescriptor).getClassName();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    doReturn(Optional.ofNullable(jarFile)).when(coprocessorDescriptor).getJarPath();<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>    List&lt;CoprocessorViolation&gt; violations = new ArrayList&lt;&gt;();<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>    validator.validateTables(getClassLoader(), admin, pattern, violations);<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>    return violations;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  }<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>  @Test<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  public void testTableNoSuchClass() throws IOException {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    List&lt;CoprocessorViolation&gt; violations = validateTable(null, "NoSuchClass");<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    assertEquals(1, violations.size());<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>    CoprocessorViolation violation = violations.get(0);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    assertEquals(getFullClassName("NoSuchClass"), violation.getClassName());<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>    String stackTrace = Throwables.getStackTraceAsString(violation.getThrowable());<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    assertTrue(stackTrace.contains("java.lang.ClassNotFoundException: " +<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$NoSuchClass"));<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>  @Test<a name="line.221"></a>
+<span class="sourceLineNo">222</span>  public void testTableMissingJar() throws IOException {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    List&lt;CoprocessorViolation&gt; violations = validateTable("no such file", "NoSuchClass");<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    assertEquals(1, violations.size());<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>    CoprocessorViolation violation = violations.get(0);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    assertEquals(getFullClassName("NoSuchClass"), violation.getClassName());<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    assertTrue(violation.getMessage().contains("could not validate jar file 'no such file'"));<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>  @Test<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  public void testTableValidJar() throws IOException {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    Path outputDirectory = Paths.get("target", "test-classes");<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    String className = getFullClassName("ObsoleteMethodObserver");<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    Path classFile = Paths.get(className.replace('.', '/') + ".class");<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    Path fullClassFile = outputDirectory.resolve(classFile);<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>    Path tempJarFile = Files.createTempFile("coprocessor-validator-test-", ".jar");<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>    try {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      try (OutputStream fileStream = Files.newOutputStream(tempJarFile);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>          JarOutputStream jarStream = new JarOutputStream(fileStream);<a name="line.243"></a>
+<span class="sourceLineNo">244</span>          InputStream classStream = Files.newInputStream(fullClassFile)) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        ZipEntry entry = new ZipEntry(classFile.toString());<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        jarStream.putNextEntry(entry);<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>        ByteStreams.copy(classStream, jarStream);<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>      String tempJarFileUri = tempJarFile.toUri().toString();<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>      List&lt;CoprocessorViolation&gt; violations =<a name="line.253"></a>
+<span class="sourceLineNo">254</span>          validateTable(tempJarFileUri, "ObsoleteMethodObserver");<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      assertEquals(1, violations.size());<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>      CoprocessorViolation violation = violations.get(0);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      assertEquals(getFullClassName("ObsoleteMethodObserver"), violation.getClassName());<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      assertEquals(Severity.WARNING, violation.getSeverity());<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      assertTrue(violation.getMessage().contains("was removed from new coprocessor API"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    } finally {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      Files.delete(tempJarFile);<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>}<a name="line.265"></a>
 
 
 


[20/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/master/MasterRpcServices.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/MasterRpcServices.html b/devapidocs/org/apache/hadoop/hbase/master/MasterRpcServices.html
index e42a6a6..1fd58d9 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/MasterRpcServices.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/MasterRpcServices.html
@@ -119,7 +119,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.305">MasterRpcServices</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.306">MasterRpcServices</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a>
 implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.BlockingInterface, org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStatusService.BlockingInterface, org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockService.BlockingInterface</pre>
 <div class="block">Implements the master RPC services.</div>
@@ -798,7 +798,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <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/master/MasterRpcServices.html#line.308">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.309">LOG</a></pre>
 </li>
 </ul>
 <a name="master">
@@ -807,7 +807,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockListLast">
 <li class="blockList">
 <h4>master</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.310">master</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.311">master</a></pre>
 </li>
 </ul>
 </li>
@@ -824,7 +824,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MasterRpcServices</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.332">MasterRpcServices</a>(<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;m)
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.333">MasterRpcServices</a>(<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;m)
                   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>
@@ -846,7 +846,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>createConfigurationSubset</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse.Builder&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.316">createConfigurationSubset</a>()</pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse.Builder&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.317">createConfigurationSubset</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Subset of configuration to pass initializing regionservers: e.g.
@@ -860,7 +860,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>addConfig</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse.Builder&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.323">addConfig</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse.Builder&nbsp;resp,
+<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse.Builder&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.324">addConfig</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse.Builder&nbsp;resp,
                                                                                                                                  <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;key)</pre>
 </li>
 </ul>
@@ -870,7 +870,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>createRpcServer</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.338">createRpcServer</a>(<a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.339">createRpcServer</a>(<a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a>&nbsp;server,
                                              org.apache.hadoop.conf.Configuration&nbsp;conf,
                                              <a href="../../../../../org/apache/hadoop/hbase/regionserver/RpcSchedulerFactory.html" title="interface in org.apache.hadoop.hbase.regionserver">RpcSchedulerFactory</a>&nbsp;rpcSchedulerFactory,
                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>&nbsp;bindAddress,
@@ -890,7 +890,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>createPriority</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html" title="interface in org.apache.hadoop.hbase.ipc">PriorityFunction</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.356">createPriority</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html" title="interface in org.apache.hadoop.hbase.ipc">PriorityFunction</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.357">createPriority</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html#createPriority--">createPriority</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a></code></dd>
@@ -903,7 +903,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>rpcPreCheck</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.369">rpcPreCheck</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;requestName)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.370">rpcPreCheck</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;requestName)
                   throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Checks for the following pre-checks in order:
  <ol>
@@ -924,7 +924,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>switchBalancer</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.389">switchBalancer</a>(boolean&nbsp;b,
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.390">switchBalancer</a>(boolean&nbsp;b,
                        <a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master">MasterRpcServices.BalanceSwitchMode</a>&nbsp;mode)
                 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">Assigns balancer switch according to BalanceSwitchMode</div>
@@ -945,7 +945,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>synchronousBalanceSwitch</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.417">synchronousBalanceSwitch</a>(boolean&nbsp;b)
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.418">synchronousBalanceSwitch</a>(boolean&nbsp;b)
                           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>
@@ -959,7 +959,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getServices</h4>
-<pre>protected&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="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.425">getServices</a>()</pre>
+<pre>protected&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="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.426">getServices</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html#getServices--">RSRpcServices</a></code></span></div>
 <div class="block">By default, put up an Admin and a Client Service.
  Set booleans <code>hbase.regionserver.admin.executorService</code> and
@@ -979,7 +979,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastFlushedSequenceId</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.GetLastFlushedSequenceIdResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.441">getLastFlushedSequenceId</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.GetLastFlushedSequenceIdResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.442">getLastFlushedSequenceId</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                             org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.GetLastFlushedSequenceIdRequest&nbsp;request)
                                                                                                                                      throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -996,7 +996,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>regionServerReport</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerReportResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.455">regionServerReport</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerReportResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.456">regionServerReport</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerReportRequest&nbsp;request)
                                                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1013,7 +1013,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>regionServerStartup</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.479">regionServerStartup</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.487">regionServerStartup</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                   org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest&nbsp;request)
                                                                                                                            throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1030,7 +1030,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>reportRSFatalError</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRSFatalErrorResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.505">reportRSFatalError</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRSFatalErrorResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.518">reportRSFatalError</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRSFatalErrorRequest&nbsp;request)
                                                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1047,7 +1047,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>addColumn</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.517">addColumn</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.530">addColumn</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                   org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest&nbsp;req)
                                                                                            throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1064,7 +1064,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>assignRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.537">assignRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.550">assignRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                         org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest&nbsp;req)
                                                                                                  throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1081,7 +1081,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>balance</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.569">balance</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.582">balance</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest&nbsp;request)
                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1098,7 +1098,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>createNamespace</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.580">createNamespace</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.593">createNamespace</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest&nbsp;request)
                                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1115,7 +1115,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>createTable</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.594">createTable</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.607">createTable</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                       org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest&nbsp;req)
                                                                                                throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1132,7 +1132,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteColumn</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.608">deleteColumn</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.621">deleteColumn</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                         org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest&nbsp;req)
                                                                                                  throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1149,7 +1149,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteNamespace</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.628">deleteNamespace</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.641">deleteNamespace</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest&nbsp;request)
                                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1166,7 +1166,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteSnapshot</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.649">deleteSnapshot</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.662">deleteSnapshot</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest&nbsp;request)
                                                                                                      throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Execute Delete Snapshot operation.</div>
@@ -1188,7 +1188,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteTable</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.664">deleteTable</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.677">deleteTable</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                       org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest&nbsp;request)
                                                                                                throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1205,7 +1205,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>truncateTable</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.676">truncateTable</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.689">truncateTable</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest&nbsp;request)
                                                                                                    throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1222,7 +1222,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>disableTable</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.691">disableTable</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.704">disableTable</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                         org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest&nbsp;request)
                                                                                                  throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1239,7 +1239,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>enableCatalogJanitor</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableCatalogJanitorResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.705">enableCatalogJanitor</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableCatalogJanitorResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.718">enableCatalogJanitor</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                                         org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableCatalogJanitorRequest&nbsp;req)
                                                                                                                  throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1256,7 +1256,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>setCleanerChoreRunning</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetCleanerChoreRunningResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.713">setCleanerChoreRunning</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetCleanerChoreRunningResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.726">setCleanerChoreRunning</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                                             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetCleanerChoreRunningRequest&nbsp;req)
                                                                                                                      throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1273,7 +1273,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>enableTable</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.725">enableTable</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.738">enableTable</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                       org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest&nbsp;request)
                                                                                                throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1290,7 +1290,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>mergeTableRegions</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.739">mergeTableRegions</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.752">mergeTableRegions</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                                   org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest&nbsp;request)
                                                                                                            throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1307,7 +1307,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>splitRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SplitTableRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.779">splitRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SplitTableRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.792">splitRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                            org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SplitTableRegionRequest&nbsp;request)
                                                                                                     throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1324,7 +1324,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>execMasterService</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.794">execMasterService</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.807">execMasterService</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                    org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest&nbsp;request)
                                                                                                             throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1341,7 +1341,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>execProcedure</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.838">execProcedure</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.851">execProcedure</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest&nbsp;request)
                                                                                                    throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Triggers an asynchronous attempt to run a distributed procedure.
@@ -1360,7 +1360,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>execProcedureWithRet</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.870">execProcedureWithRet</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.883">execProcedureWithRet</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                  org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest&nbsp;request)
                                                                                                           throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Triggers a synchronous attempt to run a distributed procedure and sets
@@ -1380,7 +1380,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterStatus</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetClusterStatusResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.894">getClusterStatus</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetClusterStatusResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.907">getClusterStatus</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetClusterStatusRequest&nbsp;req)
                                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1397,7 +1397,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompletedSnapshots</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.911">getCompletedSnapshots</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.924">getCompletedSnapshots</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest&nbsp;request)
                                                                                                                    throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">List the currently available/stored snapshots. Any in-progress snapshots are ignored</div>
@@ -1415,7 +1415,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getNamespaceDescriptor</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.929">getNamespaceDescriptor</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.942">getNamespaceDescriptor</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest&nbsp;request)
                                                                                                                      throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1432,7 +1432,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getSchemaAlterStatus</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.951">getSchemaAlterStatus</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.964">getSchemaAlterStatus</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                         org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest&nbsp;req)
                                                                                                                  throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Get the number of regions of the table that have been updated by the alter.</div>
@@ -1454,7 +1454,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableDescriptors</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.980">getTableDescriptors</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.993">getTableDescriptors</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                                       org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest&nbsp;req)
                                                                                                                throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Get list of TableDescriptors for requested tables.</div>
@@ -1478,7 +1478,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableNames</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1019">getTableNames</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1032">getTableNames</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest&nbsp;req)
                                                                                                    throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Get list of userspace table names</div>
@@ -1501,7 +1501,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableState</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableStateResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1043">getTableState</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableStateResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1056">getTableState</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableStateRequest&nbsp;request)
                                                                                                    throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1518,7 +1518,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>isCatalogJanitorEnabled</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1058">isCatalogJanitorEnabled</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1071">isCatalogJanitorEnabled</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledRequest&nbsp;req)
                                                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1535,7 +1535,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>isCleanerChoreEnabled</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCleanerChoreEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1065">isCleanerChoreEnabled</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCleanerChoreEnabledResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1078">isCleanerChoreEnabled</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCleanerChoreEnabledRequest&nbsp;req)
                                                                                                                    throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1552,7 +1552,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>isMasterRunning</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsMasterRunningResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1073">isMasterRunning</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsMasterRunningResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1086">isMasterRunning</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsMasterRunningRequest&nbsp;req)
                                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1569,7 +1569,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>isProcedureDone</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1090">isProcedureDone</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1103">isProcedureDone</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest&nbsp;request)
                                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Checks if the specified procedure is done.</div>
@@ -1589,7 +1589,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>isSnapshotDone</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1124">isSnapshotDone</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1137">isSnapshotDone</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest&nbsp;request)
                                                                                                      throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Checks if the specified snapshot is done.</div>
@@ -1611,7 +1611,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedureResult</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1142">getProcedureResult</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1155">getProcedureResult</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                     org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest&nbsp;request)
                                                                                                              throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1628,7 +1628,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>abortProcedure</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1178">abortProcedure</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;rpcController,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1191">abortProcedure</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;rpcController,
                                                                                                             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest&nbsp;request)
                                                                                                      throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1645,7 +1645,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>listNamespaceDescriptors</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1192">listNamespaceDescriptors</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1205">listNamespaceDescriptors</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest&nbsp;request)
                                                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1662,7 +1662,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedures</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProceduresResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1207">getProcedures</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;rpcController,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProceduresResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1220">getProcedures</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;rpcController,
                                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProceduresRequest&nbsp;request)
                                                                                                    throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1679,7 +1679,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getLocks</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetLocksResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1222">getLocks</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetLocksResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1235">getLocks</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetLocksRequest&nbsp;request)
                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1696,7 +1696,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableDescriptorsByNamespace</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1239">listTableDescriptorsByNamespace</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1252">listTableDescriptorsByNamespace</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceRequest&nbsp;request)
                                                                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1713,7 +1713,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableNamesByNamespace</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1255">listTableNamesByNamespace</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1268">listTableNamesByNamespace</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                                                   org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByNamespaceRequest&nbsp;request)
                                                                                                                            throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1730,7 +1730,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyColumn</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1270">modifyColumn</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1283">modifyColumn</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                         org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest&nbsp;req)
                                                                                                  throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1747,7 +1747,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyNamespace</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1290">modifyNamespace</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1303">modifyNamespace</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest&nbsp;request)
                                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1764,7 +1764,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyTable</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyTableResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1304">modifyTable</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyTableResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1317">modifyTable</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                       org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyTableRequest&nbsp;req)
                                                                                                throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1781,7 +1781,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>moveRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1319">moveRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1332">moveRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                     org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest&nbsp;req)
                                                                                              throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1798,7 +1798,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>offlineRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1349">offlineRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1362">offlineRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest&nbsp;request)
                                                                                                    throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Offline specified region from master's in-memory state. It will not attempt to
@@ -1819,7 +1819,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>restoreSnapshot</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1392">restoreSnapshot</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1405">restoreSnapshot</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest&nbsp;request)
                                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Execute Restore/Clone snapshot operation.
@@ -1847,7 +1847,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>runCatalogScan</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCatalogScanResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1406">runCatalogScan</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCatalogScanResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1419">runCatalogScan</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCatalogScanRequest&nbsp;req)
                                                                                                      throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1864,7 +1864,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>runCleanerChore</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCleanerChoreResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1417">runCleanerChore</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCleanerChoreResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1430">runCleanerChore</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCleanerChoreRequest&nbsp;req)
                                                                                                        throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1881,7 +1881,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>setBalancerRunning</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1425">setBalancerRunning</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1438">setBalancerRunning</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                                     org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest&nbsp;req)
                                                                                                              throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1898,7 +1898,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ShutdownResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1438">shutdown</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ShutdownResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1451">shutdown</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ShutdownRequest&nbsp;request)
                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1915,7 +1915,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>snapshot</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1455">snapshot</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1468">snapshot</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest&nbsp;request)
                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Triggers an asynchronous attempt to take a snapshot.
@@ -1934,7 +1934,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>stopMaster</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.StopMasterResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1480">stopMaster</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.StopMasterResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1493">stopMaster</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                     org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.StopMasterRequest&nbsp;request)
                                                                                              throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1951,7 +1951,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>isMasterInMaintenanceMode</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsInMaintenanceModeResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1493">isMasterInMaintenanceMode</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsInMaintenanceModeResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1506">isMasterInMaintenanceMode</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsInMaintenanceModeRequest&nbsp;request)
                                                                                                                      throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1968,7 +1968,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>unassignRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1506">unassignRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1519">unassignRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                             org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest&nbsp;req)
                                                                                                      throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1985,7 +1985,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>reportRegionStateTransition</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1547">reportRegionStateTransition</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1560">reportRegionStateTransition</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                                                                   org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionRequest&nbsp;req)
                                                                                                                                            throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2002,7 +2002,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>setQuota</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1558">setQuota</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1571">setQuota</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;c,
                                                                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest&nbsp;req)
                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2019,7 +2019,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastMajorCompactionTimestamp</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1569">getLastMajorCompactionTimestamp</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1582">getLastMajorCompactionTimestamp</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                        org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampRequest&nbsp;request)
                                                                                                                                 throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2036,7 +2036,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastMajorCompactionTimestampForRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1584">getLastMajorCompactionTimestampForRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1597">getLastMajorCompactionTimestampForRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                                                 org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampForRegionRequest&nbsp;request)
                                                                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2053,7 +2053,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>compactRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1608">compactRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1621">compactRegion</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest&nbsp;request)
                                                                                                   throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Compact a region on the master.</div>
@@ -2076,7 +2076,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>checkHFileFormatVersionForMob</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1630">checkHFileFormatVersionForMob</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1643">checkHFileFormatVersionForMob</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>
 <div class="block">check configured hfile format version before to do compaction</div>
 <dl>
@@ -2091,7 +2091,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionInfo</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1642">getRegionInfo</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1655">getRegionInfo</a>(org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoRequest&nbsp;request)
                                                                                                   throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2110,7 +2110,7 @@ implements org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.Master
 <ul class="blockList">
 <li class="blockList">
 <h4>compactMob</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1667">compactMob</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest&nbsp;request,
+<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.1680">compactMob</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest&nbsp;request,
                                                            

<TRUNCATED>

[26/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 0771a77..7ff01d5 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -3624,8 +3624,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift/TBoundedThreadPoolServer.Args.html#Args-org.apache.thrift.transport.TServerTransport-org.apache.hadoop.conf.Configuration-">Args(TServerTransport, Configuration)</a></span> - Constructor for class org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/TBoundedThreadPoolServer.Args.html" title="class in org.apache.hadoop.hbase.thrift">TBoundedThreadPoolServer.Args</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#args">args</a></span> - Variable in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/AnnotationReadingPriorityFunction.html#argumentToClassMap">argumentToClassMap</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/AnnotationReadingPriorityFunction.html" title="class in org.apache.hadoop.hbase.regionserver">AnnotationReadingPriorityFunction</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/nio/ByteBuff.html#array--">array()</a></span> - Method in class org.apache.hadoop.hbase.nio.<a href="org/apache/hadoop/hbase/nio/ByteBuff.html" title="class in org.apache.hadoop.hbase.nio">ByteBuff</a></dt>
@@ -7179,6 +7177,8 @@
 <div class="block">Puts CellScanner Cells into a cell block using passed in <code>codec</code> and/or
  <code>compressor</code>.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#buildClasspath-java.util.List-">buildClasspath(List&lt;String&gt;)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#buildClientPassword-org.apache.hadoop.security.token.Token-">buildClientPassword(Token&lt;BlockTokenIdentifier&gt;)</a></span> - Static method in class org.apache.hadoop.hbase.io.asyncfs.<a href="org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html" title="class in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/LoadIncrementalHFiles.html#buildClientServiceCallable-org.apache.hadoop.hbase.client.Connection-org.apache.hadoop.hbase.TableName-byte:A-java.util.Collection-boolean-">buildClientServiceCallable(Connection, TableName, byte[], Collection&lt;LoadIncrementalHFiles.LoadQueueItem&gt;, boolean)</a></span> - Method in class org.apache.hadoop.hbase.tool.<a href="org/apache/hadoop/hbase/tool/LoadIncrementalHFiles.html" title="class in org.apache.hadoop.hbase.tool">LoadIncrementalHFiles</a></dt>
@@ -11425,6 +11425,8 @@
  trying to load it from the coprocessor jar and instead delegate
  directly to the parent ClassLoader.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#classes">classes</a></span> - Variable in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/util/Classes.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Classes</span></a> - Class in <a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></dt>
 <dd>
 <div class="block">Utilities for class manipulation.</div>
@@ -11458,6 +11460,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.TableCoprocessorAttribute.html#className">className</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.TableCoprocessorAttribute.html" title="class in org.apache.hadoop.hbase.regionserver">RegionCoprocessorHost.TableCoprocessorAttribute</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#className">className</a></span> - Variable in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/BufferedMutator.html#CLASSNAME_KEY">CLASSNAME_KEY</a></span> - Static variable 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">Key to use setting non-default BufferedMutator implementation in Configuration.</div>
@@ -16521,6 +16525,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html#config">config</a></span> - Variable in class org.apache.hadoop.hbase.tmpl.regionserver.<a href="org/apache/hadoop/hbase/tmpl/regionserver/BlockCacheTmplImpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">BlockCacheTmplImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#config">config</a></span> - Variable in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/NettyRpcClientConfigHelper.html#CONFIG_NAME">CONFIG_NAME</a></span> - Static variable in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/NettyRpcClientConfigHelper.html" title="class in org.apache.hadoop.hbase.ipc">NettyRpcClientConfigHelper</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/NettyAsyncFSWALConfigHelper.html#CONFIG_NAME">CONFIG_NAME</a></span> - Static variable in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/NettyAsyncFSWALConfigHelper.html" title="class in org.apache.hadoop.hbase.wal">NettyAsyncFSWALConfigHelper</a></dt>
@@ -17962,9 +17968,9 @@
 </dd>
 <dt><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor"><span class="typeNameLink">CoprocessorViolation</span></a> - Class in <a href="org/apache/hadoop/hbase/tool/coprocessor/package-summary.html">org.apache.hadoop.hbase.tool.coprocessor</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#CoprocessorViolation-org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity-java.lang.String-">CoprocessorViolation(CoprocessorViolation.Severity, String)</a></span> - Constructor for class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#CoprocessorViolation-java.lang.String-org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity-java.lang.String-">CoprocessorViolation(String, CoprocessorViolation.Severity, String)</a></span> - Constructor for class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#CoprocessorViolation-org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity-java.lang.String-java.lang.Throwable-">CoprocessorViolation(CoprocessorViolation.Severity, String, Throwable)</a></span> - Constructor for class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#CoprocessorViolation-java.lang.String-org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity-java.lang.String-java.lang.Throwable-">CoprocessorViolation(String, CoprocessorViolation.Severity, String, Throwable)</a></span> - Constructor for class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html" title="enum in org.apache.hadoop.hbase.tool.coprocessor"><span class="typeNameLink">CoprocessorViolation.Severity</span></a> - Enum in <a href="org/apache/hadoop/hbase/tool/coprocessor/package-summary.html">org.apache.hadoop.hbase.tool.coprocessor</a></dt>
 <dd>&nbsp;</dd>
@@ -19241,6 +19247,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#createClassLoader-java.net.URL:A-">createClassLoader(URL[])</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#createClassLoader-java.net.URL:A-java.lang.ClassLoader-">createClassLoader(URL[], ClassLoader)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#createClassLoader-java.lang.ClassLoader-org.apache.hadoop.fs.Path-">createClassLoader(ClassLoader, Path)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html#createCleanerContext-org.apache.hadoop.fs.FileStatus-">createCleanerContext(FileStatus)</a></span> - Static method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/LogCleaner.CleanerContext.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner.CleanerContext</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/ServerNonceManager.html#createCleanupScheduledChore-org.apache.hadoop.hbase.Stoppable-">createCleanupScheduledChore(Stoppable)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/ServerNonceManager.html" title="class in org.apache.hadoop.hbase.regionserver">ServerNonceManager</a></dt>
@@ -31520,8 +31530,6 @@
 <dd>
 <div class="block">Filter and return regions for which favored nodes is not applicable.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#filterObservers-java.lang.ClassLoader-java.lang.Iterable-">filterObservers(ClassLoader, Iterable&lt;String&gt;)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#filterOfflineServers-org.apache.hadoop.hbase.rsgroup.RSGroupInfo-java.util.List-">filterOfflineServers(RSGroupInfo, List&lt;ServerName&gt;)</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupBasedLoadBalancer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/filter/RandomRowFilter.html#filterOutRow">filterOutRow</a></span> - Variable in class org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/RandomRowFilter.html" title="class in org.apache.hadoop.hbase.filter">RandomRowFilter</a></dt>
@@ -36263,6 +36271,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.TableCoprocessorAttribute.html#getClassName--">getClassName()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.TableCoprocessorAttribute.html" title="class in org.apache.hadoop.hbase.regionserver">RegionCoprocessorHost.TableCoprocessorAttribute</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#getClassName--">getClassName()</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html#getCleanerThreads--">getCleanerThreads()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/CleanerChore.CleanerTask.html#getCleanResult-java.util.List-">getCleanResult(List&lt;CleanerChore&lt;T&gt;.CleanerTask&gt;)</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/CleanerChore.CleanerTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">CleanerChore.CleanerTask</a></dt>
@@ -37562,8 +37572,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/VersionInfoUtil.html#getCurrentClientVersionInfo--">getCurrentClientVersionInfo()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/VersionInfoUtil.html" title="class in org.apache.hadoop.hbase.client">VersionInfoUtil</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/VersionInfoUtil.html#getCurrentClientVersionNumber--">getCurrentClientVersionNumber()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/VersionInfoUtil.html" title="class in org.apache.hadoop.hbase.client">VersionInfoUtil</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/RegionLoad.html#getCurrentCompactedKVs--">getCurrentCompactedKVs()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/RegionLoad.html" title="class in org.apache.hadoop.hbase">RegionLoad</a></dt>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>
@@ -40716,8 +40724,6 @@
 <dd>
 <div class="block">Invoke 'getJar' on a custom JarFinder implementation.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#getJarClasses-java.nio.file.Path-">getJarClasses(Path)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CoprocessorDescriptor.html#getJarPath--">getJarPath()</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CoprocessorDescriptor.html" title="interface in org.apache.hadoop.hbase.client">CoprocessorDescriptor</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CoprocessorDescriptorBuilder.CoprocessorDescriptorImpl.html#getJarPath--">getJarPath()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CoprocessorDescriptorBuilder.CoprocessorDescriptorImpl.html" title="class in org.apache.hadoop.hbase.client">CoprocessorDescriptorBuilder.CoprocessorDescriptorImpl</a></dt>
@@ -49370,10 +49376,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/MetaTableAccessor.html#getServerUserRegions-org.apache.hadoop.hbase.client.Connection-org.apache.hadoop.hbase.ServerName-">getServerUserRegions(Connection, ServerName)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/MetaTableAccessor.html" title="class in org.apache.hadoop.hbase">MetaTableAccessor</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/ServerManager.html#getServerVersion-org.apache.hadoop.hbase.ServerName-">getServerVersion(ServerName)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a></dt>
-<dd>
-<div class="block">May return 0 when server is not online.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/model/VersionModel.html#getServerVersion--">getServerVersion()</a></span> - Method in class org.apache.hadoop.hbase.rest.model.<a href="org/apache/hadoop/hbase/rest/model/VersionModel.html" title="class in org.apache.hadoop.hbase.rest.model">VersionModel</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/RecoveredReplicationSource.html#getServerWALsBelongTo--">getServerWALsBelongTo()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/RecoveredReplicationSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">RecoveredReplicationSource</a></dt>
@@ -52334,6 +52336,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html#getThrowable--">getThrowable()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#getThrowable--">getThrowable()</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift2/ThriftServer.html#getTHsHaServer-org.apache.thrift.protocol.TProtocolFactory-org.apache.thrift.TProcessor-org.apache.thrift.transport.TTransportFactory-int-int-java.net.InetSocketAddress-org.apache.hadoop.hbase.thrift.ThriftMetrics-">getTHsHaServer(TProtocolFactory, TProcessor, TTransportFactory, int, int, InetSocketAddress, ThriftMetrics)</a></span> - Static method in class org.apache.hadoop.hbase.thrift2.<a href="org/apache/hadoop/hbase/thrift2/ThriftServer.html" title="class in org.apache.hadoop.hbase.thrift2">ThriftServer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/ConnectionId.html#getTicket--">getTicket()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/ConnectionId.html" title="class in org.apache.hadoop.hbase.ipc">ConnectionId</a></dt>
@@ -53676,12 +53680,20 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/CoprocessorEnvironment.html#getVersion--">getVersion()</a></span> - Method in interface org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/ServerManager.html#getVersion-org.apache.hadoop.hbase.ServerName-">getVersion(ServerName)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a></dt>
+<dd>
+<div class="block">May return "0.0.0" when server is not online</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/VersionedSegmentsList.html#getVersion--">getVersion()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/VersionedSegmentsList.html" title="class in org.apache.hadoop.hbase.regionserver">VersionedSegmentsList</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/model/StorageClusterVersionModel.html#getVersion--">getVersion()</a></span> - Method in class org.apache.hadoop.hbase.rest.model.<a href="org/apache/hadoop/hbase/rest/model/StorageClusterVersionModel.html" title="class in org.apache.hadoop.hbase.rest.model">StorageClusterVersionModel</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/Permission.html#getVersion--">getVersion()</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/Permission.html" title="class in org.apache.hadoop.hbase.security.access">Permission</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerMetrics.html#getVersion--">getVersion()</a></span> - Method in interface org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#getVersion--">getVersion()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder.ServerMetricsImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/FSUtils.html#getVersion-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-">getVersion(FileSystem, Path)</a></span> - Static method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/FSUtils.html" title="class in org.apache.hadoop.hbase.util">FSUtils</a></dt>
 <dd>
 <div class="block">Verifies current version of file system</div>
@@ -53716,6 +53728,10 @@
 <dd>
 <div class="block">Pack the full number version in a int.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/ServerManager.html#getVersionNumber-org.apache.hadoop.hbase.ServerName-">getVersionNumber(ServerName)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a></dt>
+<dd>
+<div class="block">May return 0 when server is not online.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerMetrics.html#getVersionNumber--">getVersionNumber()</a></span> - Method in interface org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#getVersionNumber--">getVersionNumber()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder.ServerMetricsImpl</a></dt>
@@ -65018,6 +65034,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CoprocessorDescriptorBuilder.html#jarPath">jarPath</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CoprocessorDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">CoprocessorDescriptorBuilder</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#jars">jars</a></span> - Variable in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/JSONMetricUtil.html#JAVA_LANG_DOMAIN">JAVA_LANG_DOMAIN</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/JSONMetricUtil.html" title="class in org.apache.hadoop.hbase.util">JSONMetricUtil</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/JSONMetricUtil.html#JAVA_NIO_DOMAIN">JAVA_NIO_DOMAIN</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/JSONMetricUtil.html" title="class in org.apache.hadoop.hbase.util">JSONMetricUtil</a></dt>
@@ -78718,7 +78736,7 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerMetricsBuilder.html#of-org.apache.hadoop.hbase.ServerName-">of(ServerName)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerMetricsBuilder.html#of-org.apache.hadoop.hbase.ServerName-int-">of(ServerName, int)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerMetricsBuilder.html#of-org.apache.hadoop.hbase.ServerName-int-java.lang.String-">of(ServerName, int, String)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/AdaptiveLifoCoDelCallQueue.html#offer-org.apache.hadoop.hbase.ipc.CallRunner-">offer(CallRunner)</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/AdaptiveLifoCoDelCallQueue.html" title="class in org.apache.hadoop.hbase.ipc">AdaptiveLifoCoDelCallQueue</a></dt>
 <dd>&nbsp;</dd>
@@ -90546,7 +90564,7 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterRpcServices.html#regionServerStartup-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest-">regionServerStartup(RpcController, RegionServerStatusProtos.RegionServerStartupRequest)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterRpcServices.html" title="class in org.apache.hadoop.hbase.master">MasterRpcServices</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/ServerManager.html#regionServerStartup-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest-int-java.net.InetAddress-">regionServerStartup(RegionServerStatusProtos.RegionServerStartupRequest, int, InetAddress)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/ServerManager.html#regionServerStartup-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest-int-java.lang.String-java.net.InetAddress-">regionServerStartup(RegionServerStatusProtos.RegionServerStartupRequest, int, String, InetAddress)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a></dt>
 <dd>
 <div class="block">Let the server manager know a new regionserver has come online</div>
 </dd>
@@ -94179,7 +94197,7 @@ service.</div>
 <dd>
 <div class="block">Resolve deprecated class name to keep backward compatibiliy</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html#ResolverUrlClassLoader-java.net.URL:A-">ResolverUrlClassLoader(URL[])</a></span> - Constructor for class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator.ResolverUrlClassLoader</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html#ResolverUrlClassLoader-java.net.URL:A-java.lang.ClassLoader-">ResolverUrlClassLoader(URL[], ClassLoader)</a></span> - Constructor for class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator.ResolverUrlClassLoader</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/CoprocessorClassLoader.html#RESOURCE_LOAD_PARENT_FIRST_PATTERNS">RESOURCE_LOAD_PARENT_FIRST_PATTERNS</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/CoprocessorClassLoader.html" title="class in org.apache.hadoop.hbase.util">CoprocessorClassLoader</a></dt>
 <dd>
@@ -97696,8 +97714,6 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StoreScanner.html#scan">scan</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver">StoreScanner</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#scan">scan</a></span> - Variable in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
-<dd>&nbsp;</dd>
 <dt><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> - Enum in <a href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncTableImpl.html#scan0-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.client.ScanResultConsumer-">scan0(Scan, ScanResultConsumer)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncTableImpl.html" title="class in org.apache.hadoop.hbase.client">AsyncTableImpl</a></dt>
@@ -99725,7 +99741,7 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">ServerMetricsBuilder.ServerMetricsImpl</span></a> - Class in <a href="org/apache/hadoop/hbase/package-summary.html">org.apache.hadoop.hbase</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#ServerMetricsImpl-org.apache.hadoop.hbase.ServerName-int-long-long-org.apache.hadoop.hbase.Size-org.apache.hadoop.hbase.Size-int-java.util.List-org.apache.hadoop.hbase.replication.ReplicationLoadSink-java.util.Map-java.util.Set-long-long-">ServerMetricsImpl(ServerName, int, long, long, Size, Size, int, List&lt;ReplicationLoadSource&gt;, ReplicationLoadSink, Map&lt;byte[], RegionMetrics&gt;, Set&lt;String&gt;, long, long)</a></span> - Constructor for class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder.ServerMetricsImpl</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#ServerMetricsImpl-org.apache.hadoop.hbase.ServerName-int-java.lang.String-long-long-org.apache.hadoop.hbase.Size-org.apache.hadoop.hbase.Size-int-java.util.List-org.apache.hadoop.hbase.replication.ReplicationLoadSink-java.util.Map-java.util.Set-long-long-">ServerMetricsImpl(ServerName, int, String, long, long, Size, Size, int, List&lt;ReplicationLoadSource&gt;, ReplicationLoadSink, Map&lt;byte[], RegionMetrics&gt;, Set&lt;String&gt;, long, long)</a></span> - Constructor for class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder.ServerMetricsImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/tmpl/regionserver/ServerMetricsTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver"><span class="typeNameLink">ServerMetricsTmpl</span></a> - Class in <a href="org/apache/hadoop/hbase/tmpl/regionserver/package-summary.html">org.apache.hadoop.hbase.tmpl.regionserver</a></dt>
 <dd>&nbsp;</dd>
@@ -104701,6 +104717,8 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/model/StorageClusterVersionModel.html#setVersion-java.lang.String-">setVersion(String)</a></span> - Method in class org.apache.hadoop.hbase.rest.model.<a href="org/apache/hadoop/hbase/rest/model/StorageClusterVersionModel.html" title="class in org.apache.hadoop.hbase.rest.model">StorageClusterVersionModel</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerMetricsBuilder.html#setVersion-java.lang.String-">setVersion(String)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/FSUtils.html#setVersion-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-">setVersion(FileSystem, Path)</a></span> - Static method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/FSUtils.html" title="class in org.apache.hadoop.hbase.util">FSUtils</a></dt>
 <dd>
 <div class="block">Sets version of file system</div>
@@ -111851,6 +111869,8 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/TablePartiallyOpenException.html#TablePartiallyOpenException-byte:A-">TablePartiallyOpenException(byte[])</a></span> - Constructor for exception org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/TablePartiallyOpenException.html" title="class in org.apache.hadoop.hbase.snapshot">TablePartiallyOpenException</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#tablePatterns">tablePatterns</a></span> - Variable in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/security/access/TablePermission.html" title="class in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">TablePermission</span></a> - Class in <a href="org/apache/hadoop/hbase/security/access/package-summary.html">org.apache.hadoop.hbase.security.access</a></dt>
 <dd>
 <div class="block">Represents an authorization for access for the given actions, optionally
@@ -113206,6 +113226,8 @@ service.</div>
 <dd>
 <div class="block">If error, the associated throwable.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#throwable">throwable</a></span> - Variable in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HBaseAdmin.ThrowableAbortable.html#ThrowableAbortable--">ThrowableAbortable()</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HBaseAdmin.ThrowableAbortable.html" title="class in org.apache.hadoop.hbase.client">HBaseAdmin.ThrowableAbortable</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/BatchErrors.html#throwables">throwables</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/BatchErrors.html" title="class in org.apache.hadoop.hbase.client">BatchErrors</a></dt>
@@ -114467,7 +114489,7 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerMetricsBuilder.html#toServerMetrics-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad-">toServerMetrics(ServerName, ClusterStatusProtos.ServerLoad)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerMetricsBuilder.html#toServerMetrics-org.apache.hadoop.hbase.ServerName-int-org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad-">toServerMetrics(ServerName, int, ClusterStatusProtos.ServerLoad)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerMetricsBuilder.html#toServerMetrics-org.apache.hadoop.hbase.ServerName-int-java.lang.String-org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad-">toServerMetrics(ServerName, int, String, ClusterStatusProtos.ServerLoad)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/util/StreamUtils.html#toShort-byte-byte-">toShort(byte, byte)</a></span> - Static method in class org.apache.hadoop.hbase.io.util.<a href="org/apache/hadoop/hbase/io/util/StreamUtils.html" title="class in org.apache.hadoop.hbase.io.util">StreamUtils</a></dt>
 <dd>&nbsp;</dd>
@@ -115134,6 +115156,8 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#toString--">toString()</a></span> - Method in enum org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#toString--">toString()</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/LoadIncrementalHFiles.LoadQueueItem.html#toString--">toString()</a></span> - Method in class org.apache.hadoop.hbase.tool.<a href="org/apache/hadoop/hbase/tool/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.tool">LoadIncrementalHFiles.LoadQueueItem</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/LoadIncrementalHFiles.html#toString-java.util.List-">toString(List&lt;Pair&lt;byte[], String&gt;&gt;)</a></span> - Method in class org.apache.hadoop.hbase.tool.<a href="org/apache/hadoop/hbase/tool/LoadIncrementalHFiles.html" title="class in org.apache.hadoop.hbase.tool">LoadIncrementalHFiles</a></dt>
@@ -118914,10 +118938,6 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validate-java.lang.ClassLoader-java.lang.String-java.util.List-">validate(ClassLoader, String, List&lt;CoprocessorViolation&gt;)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validate-java.lang.ClassLoader-java.util.List-">validate(ClassLoader, List&lt;String&gt;)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validate-java.util.List-java.util.List-">validate(List&lt;URL&gt;, List&lt;String&gt;)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/PreUpgradeValidator.html#VALIDATE_CP_NAME">VALIDATE_CP_NAME</a></span> - Static variable in class org.apache.hadoop.hbase.tool.<a href="org/apache/hadoop/hbase/tool/PreUpgradeValidator.html" title="class in org.apache.hadoop.hbase.tool">PreUpgradeValidator</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/PreUpgradeValidator.html#VALIDATE_DBE_NAME">VALIDATE_DBE_NAME</a></span> - Static variable in class org.apache.hadoop.hbase.tool.<a href="org/apache/hadoop/hbase/tool/PreUpgradeValidator.html" title="class in org.apache.hadoop.hbase.tool">PreUpgradeValidator</a></dt>
@@ -118948,6 +118968,10 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/ProcedureUtil.html#validateClass-org.apache.hadoop.hbase.procedure2.Procedure-">validateClass(Procedure)</a></span> - Static method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/ProcedureUtil.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureUtil</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validateClasses-java.lang.ClassLoader-java.util.List-java.util.List-">validateClasses(ClassLoader, List&lt;String&gt;, List&lt;CoprocessorViolation&gt;)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validateClasses-java.lang.ClassLoader-java.lang.String:A-java.util.List-">validateClasses(ClassLoader, String[], List&lt;CoprocessorViolation&gt;)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKConfig.html#validateClusterKey-java.lang.String-">validateClusterKey(String)</a></span> - Static method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKConfig.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKConfig</a></dt>
 <dd>
 <div class="block">Verifies that the given key matches the expected format for a ZooKeeper cluster key.</div>
@@ -119015,6 +119039,10 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/TableNamespaceManager.html#validateTableAndRegionCount-org.apache.hadoop.hbase.NamespaceDescriptor-">validateTableAndRegionCount(NamespaceDescriptor)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/TableNamespaceManager.html" title="class in org.apache.hadoop.hbase.master">TableNamespaceManager</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validateTables-java.lang.ClassLoader-org.apache.hadoop.hbase.client.Admin-java.util.regex.Pattern-java.util.List-">validateTables(ClassLoader, Admin, Pattern, List&lt;CoprocessorViolation&gt;)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validateTables-java.lang.ClassLoader-java.util.regex.Pattern-java.util.List-">validateTables(ClassLoader, Pattern, List&lt;CoprocessorViolation&gt;)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html#validateTimedQuota-org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.TimedQuota-">validateTimedQuota(QuotaProtos.TimedQuota)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettingsImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/ThrottleSettings.html#validateTimedQuota-org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.TimedQuota-">validateTimedQuota(QuotaProtos.TimedQuota)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/ThrottleSettings.html" title="class in org.apache.hadoop.hbase.quotas">ThrottleSettings</a></dt>
@@ -120736,6 +120764,10 @@ the order they are declared.</div>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 &nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#version">version</a></span> - Variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder.ServerMetricsImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerMetricsBuilder.html#version">version</a></span> - Variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerName.html#VERSION">VERSION</a></span> - Static variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></dt>
 <dd>
 <div class="block">Version for this class.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/ServerLoad.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ServerLoad.html b/devapidocs/org/apache/hadoop/hbase/ServerLoad.html
index 40d539b..c12c5b1 100644
--- a/devapidocs/org/apache/hadoop/hbase/ServerLoad.html
+++ b/devapidocs/org/apache/hadoop/hbase/ServerLoad.html
@@ -709,7 +709,7 @@ implements <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" titl
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></h3>
-<code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getVersionNumber--">getVersionNumber</a></code></li>
+<code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getVersion--">getVersion</a>, <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getVersionNumber--">getVersionNumber</a></code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/ServerMetrics.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ServerMetrics.html b/devapidocs/org/apache/hadoop/hbase/ServerMetrics.html
index 60f586a..d7de119 100644
--- a/devapidocs/org/apache/hadoop/hbase/ServerMetrics.html
+++ b/devapidocs/org/apache/hadoop/hbase/ServerMetrics.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":18};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":18,"i13":18};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -181,6 +181,10 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getUsedHeapSize--">getUsedHeapSize</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i12" class="altColor">
+<td class="colFirst"><code>default <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/ServerMetrics.html#getVersion--">getVersion</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>default int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getVersionNumber--">getVersionNumber</a></span>()</code>&nbsp;</td>
 </tr>
@@ -221,13 +225,26 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 </dl>
 </li>
 </ul>
+<a name="getVersion--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getVersion</h4>
+<pre>default&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/ServerMetrics.html#line.46">getVersion</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the string type version of a regionserver.</dd>
+</dl>
+</li>
+</ul>
 <a name="getRequestCountPerSecond--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getRequestCountPerSecond</h4>
-<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.46">getRequestCountPerSecond</a>()</pre>
+<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.53">getRequestCountPerSecond</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the number of requests per second.</dd>
@@ -240,7 +257,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <ul class="blockList">
 <li class="blockList">
 <h4>getRequestCount</h4>
-<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.51">getRequestCount</a>()</pre>
+<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.58">getRequestCount</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>total Number of requests from the start of the region server.</dd>
@@ -253,7 +270,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <ul class="blockList">
 <li class="blockList">
 <h4>getUsedHeapSize</h4>
-<pre><a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.56">getUsedHeapSize</a>()</pre>
+<pre><a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.63">getUsedHeapSize</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the amount of used heap</dd>
@@ -266,7 +283,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxHeapSize</h4>
-<pre><a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.61">getMaxHeapSize</a>()</pre>
+<pre><a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.68">getMaxHeapSize</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the maximum allowable size of the heap</dd>
@@ -279,7 +296,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <ul class="blockList">
 <li class="blockList">
 <h4>getInfoServerPort</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.63">getInfoServerPort</a>()</pre>
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.70">getInfoServerPort</a>()</pre>
 </li>
 </ul>
 <a name="getReplicationLoadSourceList--">
@@ -288,7 +305,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplicationLoadSourceList</h4>
-<pre><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/replication/ReplicationLoadSource.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSource</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.69">getReplicationLoadSourceList</a>()</pre>
+<pre><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/replication/ReplicationLoadSource.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSource</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.76">getReplicationLoadSourceList</a>()</pre>
 <div class="block">Call directly from client such as hbase shell</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -303,7 +320,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <li class="blockList">
 <h4>getReplicationLoadSink</h4>
 <pre>@Nullable
-<a href="../../../../org/apache/hadoop/hbase/replication/ReplicationLoadSink.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSink</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.76">getReplicationLoadSink</a>()</pre>
+<a href="../../../../org/apache/hadoop/hbase/replication/ReplicationLoadSink.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSink</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.83">getReplicationLoadSink</a>()</pre>
 <div class="block">Call directly from client such as hbase shell</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -317,7 +334,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionMetrics</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="../../../../org/apache/hadoop/hbase/RegionMetrics.html" title="interface in org.apache.hadoop.hbase">RegionMetrics</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.81">getRegionMetrics</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="../../../../org/apache/hadoop/hbase/RegionMetrics.html" title="interface in org.apache.hadoop.hbase">RegionMetrics</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.88">getRegionMetrics</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>region load metrics</dd>
@@ -330,7 +347,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <ul class="blockList">
 <li class="blockList">
 <h4>getCoprocessorNames</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<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>&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.87">getCoprocessorNames</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<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>&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.94">getCoprocessorNames</a>()</pre>
 <div class="block">Return the RegionServer-level and Region-level coprocessors</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -344,7 +361,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <ul class="blockList">
 <li class="blockList">
 <h4>getReportTimestamp</h4>
-<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.92">getReportTimestamp</a>()</pre>
+<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.99">getReportTimestamp</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the timestamp (server side) of generating this metrics</dd>
@@ -357,7 +374,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getLastReportTimestamp</h4>
-<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.97">getLastReportTimestamp</a>()</pre>
+<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.104">getLastReportTimestamp</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the last timestamp (server side) of generating this metrics</dd>


[10/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html
index 9e987f3..f2fd195 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html
@@ -126,1982 +126,1982 @@
 <span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.118"></a>
 <span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.119"></a>
 <span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier.RegionSpecifierType;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockHeartbeatRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockHeartbeatResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockService;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ClearDeadServersRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ClearDeadServersResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DecommissionRegionServersRequest;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DecommissionRegionServersResponse;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableCatalogJanitorRequest;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableCatalogJanitorResponse;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetClusterStatusRequest;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetClusterStatusResponse;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetLocksRequest;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetLocksResponse;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProceduresRequest;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProceduresResponse;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableStateRequest;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableStateResponse;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledRequest;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledResponse;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCleanerChoreEnabledRequest;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCleanerChoreEnabledResponse;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsInMaintenanceModeRequest;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsInMaintenanceModeResponse;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsMasterRunningRequest;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsMasterRunningResponse;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSplitOrMergeEnabledRequest;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSplitOrMergeEnabledResponse;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListDecommissionedRegionServersRequest;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListDecommissionedRegionServersResponse;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.199"></a>
-<span class="sourceLineNo">200</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.200"></a>
-<span class="sourceLineNo">201</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceRequest;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceResponse;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByNamespaceRequest;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByNamespaceResponse;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampForRegionRequest;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampRequest;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse;<a name="line.207"></a>
-<span class="sourceLineNo">208</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.210"></a>
-<span class="sourceLineNo">211</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.211"></a>
-<span class="sourceLineNo">212</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyTableRequest;<a name="line.215"></a>
-<span class="sourceLineNo">216</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyTableResponse;<a name="line.216"></a>
-<span class="sourceLineNo">217</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.NormalizeRequest;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.NormalizeResponse;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RecommissionRegionServerRequest;<a name="line.223"></a>
-<span class="sourceLineNo">224</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RecommissionRegionServerResponse;<a name="line.224"></a>
-<span class="sourceLineNo">225</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.225"></a>
-<span class="sourceLineNo">226</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCatalogScanRequest;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCatalogScanResponse;<a name="line.228"></a>
-<span class="sourceLineNo">229</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCleanerChoreRequest;<a name="line.229"></a>
-<span class="sourceLineNo">230</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCleanerChoreResponse;<a name="line.230"></a>
-<span class="sourceLineNo">231</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse;<a name="line.232"></a>
-<span class="sourceLineNo">233</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.233"></a>
-<span class="sourceLineNo">234</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.234"></a>
-<span class="sourceLineNo">235</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetCleanerChoreRunningRequest;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetCleanerChoreRunningResponse;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetNormalizerRunningRequest;<a name="line.237"></a>
-<span class="sourceLineNo">238</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetNormalizerRunningResponse;<a name="line.238"></a>
-<span class="sourceLineNo">239</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.239"></a>
-<span class="sourceLineNo">240</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetSplitOrMergeEnabledRequest;<a name="line.241"></a>
-<span class="sourceLineNo">242</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetSplitOrMergeEnabledResponse;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ShutdownRequest;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ShutdownResponse;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.245"></a>
-<span class="sourceLineNo">246</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.246"></a>
-<span class="sourceLineNo">247</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SplitTableRegionRequest;<a name="line.247"></a>
-<span class="sourceLineNo">248</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SplitTableRegionResponse;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.StopMasterRequest;<a name="line.249"></a>
-<span class="sourceLineNo">250</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.StopMasterResponse;<a name="line.250"></a>
-<span class="sourceLineNo">251</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.251"></a>
-<span class="sourceLineNo">252</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.252"></a>
-<span class="sourceLineNo">253</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetQuotaStatesRequest;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetQuotaStatesResponse;<a name="line.256"></a>
-<span class="sourceLineNo">257</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetQuotaStatesResponse.NamespaceQuotaSnapshot;<a name="line.257"></a>
-<span class="sourceLineNo">258</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetQuotaStatesResponse.TableQuotaSnapshot;<a name="line.258"></a>
-<span class="sourceLineNo">259</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetSpaceQuotaRegionSizesRequest;<a name="line.259"></a>
-<span class="sourceLineNo">260</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetSpaceQuotaRegionSizesResponse;<a name="line.260"></a>
-<span class="sourceLineNo">261</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetSpaceQuotaRegionSizesResponse.RegionSizes;<a name="line.261"></a>
-<span class="sourceLineNo">262</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.FileArchiveNotificationRequest;<a name="line.262"></a>
-<span class="sourceLineNo">263</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.FileArchiveNotificationResponse;<a name="line.263"></a>
-<span class="sourceLineNo">264</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.GetLastFlushedSequenceIdRequest;<a name="line.264"></a>
-<span class="sourceLineNo">265</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.GetLastFlushedSequenceIdResponse;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerReportRequest;<a name="line.266"></a>
-<span class="sourceLineNo">267</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerReportResponse;<a name="line.267"></a>
-<span class="sourceLineNo">268</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest;<a name="line.268"></a>
-<span class="sourceLineNo">269</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStatusService;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUse;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUseReportRequest;<a name="line.272"></a>
-<span class="sourceLineNo">273</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUseReportResponse;<a name="line.273"></a>
-<span class="sourceLineNo">274</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RemoteProcedureResult;<a name="line.274"></a>
-<span class="sourceLineNo">275</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportProcedureDoneRequest;<a name="line.275"></a>
-<span class="sourceLineNo">276</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportProcedureDoneResponse;<a name="line.276"></a>
-<span class="sourceLineNo">277</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRSFatalErrorRequest;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRSFatalErrorResponse;<a name="line.278"></a>
-<span class="sourceLineNo">279</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionRequest;<a name="line.279"></a>
-<span class="sourceLineNo">280</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse;<a name="line.280"></a>
-<span class="sourceLineNo">281</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.282"></a>
-<span class="sourceLineNo">283</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.283"></a>
-<span class="sourceLineNo">284</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.285"></a>
-<span class="sourceLineNo">286</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.286"></a>
-<span class="sourceLineNo">287</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.287"></a>
-<span class="sourceLineNo">288</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ReplicationState;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.TransitReplicationPeerSyncReplicationStateRequest;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.TransitReplicationPeerSyncReplicationStateResponse;<a name="line.295"></a>
-<span class="sourceLineNo">296</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.296"></a>
-<span class="sourceLineNo">297</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.297"></a>
-<span class="sourceLineNo">298</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription;<a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>/**<a name="line.300"></a>
-<span class="sourceLineNo">301</span> * Implements the master RPC services.<a name="line.301"></a>
-<span class="sourceLineNo">302</span> */<a name="line.302"></a>
-<span class="sourceLineNo">303</span>@InterfaceAudience.Private<a name="line.303"></a>
-<span class="sourceLineNo">304</span>@SuppressWarnings("deprecation")<a name="line.304"></a>
-<span class="sourceLineNo">305</span>public class MasterRpcServices extends RSRpcServices<a name="line.305"></a>
-<span class="sourceLineNo">306</span>      implements MasterService.BlockingInterface, RegionServerStatusService.BlockingInterface,<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        LockService.BlockingInterface {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  private static final Logger LOG = LoggerFactory.getLogger(MasterRpcServices.class.getName());<a name="line.308"></a>
-<span class="sourceLineNo">309</span><a name="line.309"></a>
-<span class="sourceLineNo">310</span>  private final HMaster master;<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>  /**<a name="line.312"></a>
-<span class="sourceLineNo">313</span>   * @return Subset of configuration to pass initializing regionservers: e.g.<a name="line.313"></a>
-<span class="sourceLineNo">314</span>   * the filesystem to use and root directory to use.<a name="line.314"></a>
-<span class="sourceLineNo">315</span>   */<a name="line.315"></a>
-<span class="sourceLineNo">316</span>  private RegionServerStartupResponse.Builder createConfigurationSubset() {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    RegionServerStartupResponse.Builder resp = addConfig(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      RegionServerStartupResponse.newBuilder(), HConstants.HBASE_DIR);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    resp = addConfig(resp, "fs.defaultFS");<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    return addConfig(resp, "hbase.master.info.port");<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>
-<span class="sourceLineNo">323</span>  private RegionServerStartupResponse.Builder addConfig(<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      final RegionServerStartupResponse.Builder resp, final String key) {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    NameStringPair.Builder entry = NameStringPair.newBuilder()<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      .setName(key)<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      .setValue(master.getConfiguration().get(key));<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    resp.addMapEntries(entry.build());<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    return resp;<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>  public MasterRpcServices(HMaster m) throws IOException {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    super(m);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    master = m;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  protected RpcServerInterface createRpcServer(Server server, Configuration conf,<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      RpcSchedulerFactory rpcSchedulerFactory, InetSocketAddress bindAddress, String name)<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      throws IOException {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    // RpcServer at HM by default enable ByteBufferPool iff HM having user table region in it<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    boolean reservoirEnabled = conf.getBoolean(RESERVOIR_ENABLED_KEY,<a name="line.342"></a>
-<span class="sourceLineNo">343</span>        (LoadBalancer.isTablesOnMaster(conf) &amp;&amp; !LoadBalancer.isSystemTablesOnlyOnMaster(conf)));<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    try {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      return RpcServerFactory.createRpcServer(server, name, getServices(),<a name="line.345"></a>
-<span class="sourceLineNo">346</span>          bindAddress, // use final bindAddress for this server.<a name="line.346"></a>
-<span class="sourceLineNo">347</span>          conf, rpcSchedulerFactory.create(conf, this, server), reservoirEnabled);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    } catch (BindException be) {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>      throw new IOException(be.getMessage() + ". To switch ports use the '"<a name="line.349"></a>
-<span class="sourceLineNo">350</span>          + HConstants.MASTER_PORT + "' configuration property.",<a name="line.350"></a>
-<span class="sourceLineNo">351</span>          be.getCause() != null ? be.getCause() : be);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    }<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  protected PriorityFunction createPriority() {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    return new MasterAnnotationReadingPriorityFunction(this);<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>   * Checks for the following pre-checks in order:<a name="line.361"></a>
-<span class="sourceLineNo">362</span>   * &lt;ol&gt;<a name="line.362"></a>
-<span class="sourceLineNo">363</span>   *   &lt;li&gt;Master is initialized&lt;/li&gt;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>   *   &lt;li&gt;Rpc caller has admin permissions&lt;/li&gt;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>   * &lt;/ol&gt;<a name="line.365"></a>
-<span class="sourceLineNo">366</span>   * @param requestName name of rpc request. Used in reporting failures to provide context.<a name="line.366"></a>
-<span class="sourceLineNo">367</span>   * @throws ServiceException If any of the above listed pre-check fails.<a name="line.367"></a>
-<span class="sourceLineNo">368</span>   */<a name="line.368"></a>
-<span class="sourceLineNo">369</span>  private void rpcPreCheck(String requestName) throws ServiceException {<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    try {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      master.checkInitialized();<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      requirePermission(requestName, Permission.Action.ADMIN);<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    } catch (IOException ioe) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      throw new ServiceException(ioe);<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><a name="line.377"></a>
-<span class="sourceLineNo">378</span>  enum BalanceSwitchMode {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    SYNC,<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    ASYNC<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>  /**<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   * Assigns balancer switch according to BalanceSwitchMode<a name="line.384"></a>
-<span class="sourceLineNo">385</span>   * @param b new balancer switch<a name="line.385"></a>
-<span class="sourceLineNo">386</span>   * @param mode BalanceSwitchMode<a name="line.386"></a>
-<span class="sourceLineNo">387</span>   * @return old balancer switch<a name="line.387"></a>
-<span class="sourceLineNo">388</span>   */<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  boolean switchBalancer(final boolean b, BalanceSwitchMode mode) throws IOException {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    boolean oldValue = master.loadBalancerTracker.isBalancerOn();<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    boolean newValue = b;<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    try {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      if (master.cpHost != null) {<a name="line.393"></a>
-<span class="sourceLineNo">394</span>        master.cpHost.preBalanceSwitch(newValue);<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      }<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      try {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        if (mode == BalanceSwitchMode.SYNC) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>          synchronized (master.getLoadBalancer()) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>            master.loadBalancerTracker.setBalancerOn(newValue);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          }<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        } else {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          master.loadBalancerTracker.setBalancerOn(newValue);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>        }<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      } catch (KeeperException ke) {<a name="line.404"></a>
-<span class="sourceLineNo">405</span>        throw new IOException(ke);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      }<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      LOG.info(master.getClientIdAuditPrefix() + " set balanceSwitch=" + newValue);<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      if (master.cpHost != null) {<a name="line.408"></a>
-<span class="sourceLineNo">409</span>        master.cpHost.postBalanceSwitch(oldValue, newValue);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>      }<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    } catch (IOException ioe) {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      LOG.warn("Error flipping balance switch", ioe);<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    }<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    return oldValue;<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  }<a name="line.415"></a>
-<span class="sourceLineNo">416</span><a name="line.416"></a>
-<span class="sourceLineNo">417</span>  boolean synchronousBalanceSwitch(final boolean b) throws IOException {<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    return switchBalancer(b, BalanceSwitchMode.SYNC);<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>  /**<a name="line.421"></a>
-<span class="sourceLineNo">422</span>   * @return list of blocking services and their security info classes that this server supports<a name="line.422"></a>
-<span class="sourceLineNo">423</span>   */<a name="line.423"></a>
-<span class="sourceLineNo">424</span>  @Override<a name="line.424"></a>
-<span class="sourceLineNo">425</span>  protected List&lt;BlockingServiceAndInterface&gt; getServices() {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    List&lt;BlockingServiceAndInterface&gt; bssi = new ArrayList&lt;&gt;(5);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    bssi.add(new BlockingServiceAndInterface(<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      MasterService.newReflectiveBlockingService(this),<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      MasterService.BlockingInterface.class));<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    bssi.add(new BlockingServiceAndInterface(<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      RegionServerStatusService.newReflectiveBlockingService(this),<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      RegionServerStatusService.BlockingInterface.class));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    bssi.add(new BlockingServiceAndInterface(LockService.newReflectiveBlockingService(this),<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        LockService.BlockingInterface.class));<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    bssi.addAll(super.getServices());<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    return bssi;<a name="line.436"></a>
-<span class="sourceLineNo">437</span>  }<a name="line.437"></a>
-<span class="sourceLineNo">438</span><a name="line.438"></a>
-<span class="sourceLineNo">439</span>  @Override<a name="line.439"></a>
-<span class="sourceLineNo">440</span>  @QosPriority(priority = HConstants.ADMIN_QOS)<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  public GetLastFlushedSequenceIdResponse getLastFlushedSequenceId(RpcController controller,<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      GetLastFlushedSequenceIdRequest request) throws ServiceException {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    try {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      master.checkServiceStarted();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    } catch (IOException ioe) {<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      throw new ServiceException(ioe);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    byte[] encodedRegionName = request.getRegionName().toByteArray();<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    RegionStoreSequenceIds ids = master.getServerManager()<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      .getLastFlushedSequenceId(encodedRegionName);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>    return ResponseConverter.buildGetLastFlushedSequenceIdResponse(ids);<a name="line.451"></a>
-<span class="sourceLineNo">452</span>  }<a name="line.452"></a>
-<span class="sourceLineNo">453</span><a name="line.453"></a>
-<span class="sourceLineNo">454</span>  @Override<a name="line.454"></a>
-<span class="sourceLineNo">455</span>  public RegionServerReportResponse regionServerReport(<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      RpcController controller, RegionServerReportRequest request) throws ServiceException {<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    try {<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      master.checkServiceStarted();<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      int version = VersionInfoUtil.getCurrentClientVersionNumber();<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      ClusterStatusProtos.ServerLoad sl = request.getLoad();<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      ServerName serverName = ProtobufUtil.toServerName(request.getServer());<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      ServerMetrics oldLoad = master.getServerManager().getLoad(serverName);<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      ServerMetrics newLoad = ServerMetricsBuilder.toServerMetrics(serverName, version, sl);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      master.getServerManager().regionServerReport(serverName, newLoad);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      master.getAssignmentManager()<a name="line.465"></a>
-<span class="sourceLineNo">466</span>          .reportOnlineRegions(serverName, newLoad.getRegionMetrics().keySet());<a name="line.466"></a>
-<span class="sourceLineNo">467</span>      if (sl != null &amp;&amp; master.metricsMaster != null) {<a name="line.467"></a>
-<span class="sourceLineNo">468</span>        // Up our metrics.<a name="line.468"></a>
-<span class="sourceLineNo">469</span>        master.metricsMaster.incrementRequests(sl.getTotalNumberOfRequests()<a name="line.469"></a>
-<span class="sourceLineNo">470</span>            - (oldLoad != null ? oldLoad.getRequestCount() : 0));<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      }<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    } catch (IOException ioe) {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      throw new ServiceException(ioe);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    }<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    return RegionServerReportResponse.newBuilder().build();<a name="line.475"></a>
-<span class="sourceLineNo">476</span>  }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>  @Override<a name="line.478"></a>
-<span class="sourceLineNo">479</span>  public RegionServerStartupResponse regionServerStartup(<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      RpcController controller, RegionServerStartupRequest request) throws ServiceException {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    // Register with server manager<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    try {<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      master.checkServiceStarted();<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      int version = VersionInfoUtil.getCurrentClientVersionNumber();<a name="line.484"></a>
-<span class="sourceLineNo">485</span>      InetAddress ia = master.getRemoteInetAddress(<a name="line.485"></a>
-<span class="sourceLineNo">486</span>        request.getPort(), request.getServerStartCode());<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      // if regionserver passed hostname to use,<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      // then use it instead of doing a reverse DNS lookup<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      ServerName rs = master.getServerManager().regionServerStartup(request, version, ia);<a name="line.489"></a>
-<span class="sourceLineNo">490</span><a name="line.490"></a>
-<span class="sourceLineNo">491</span>      // Send back some config info<a name="line.491"></a>
-<span class="sourceLineNo">492</span>      RegionServerStartupResponse.Builder resp = createConfigurationSubset();<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      NameStringPair.Builder entry = NameStringPair.newBuilder()<a name="line.493"></a>
-<span class="sourceLineNo">494</span>        .setName(HConstants.KEY_FOR_HOSTNAME_SEEN_BY_MASTER)<a name="line.494"></a>
-<span class="sourceLineNo">495</span>        .setValue(rs.getHostname());<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      resp.addMapEntries(entry.build());<a name="line.496"></a>
-<span class="sourceLineNo">497</span><a name="line.497"></a>
-<span class="sourceLineNo">498</span>      return resp.build();<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    } catch (IOException ioe) {<a name="line.499"></a>
-<span class="sourceLineNo">500</span>      throw new ServiceException(ioe);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    }<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>  @Override<a name="line.504"></a>
-<span class="sourceLineNo">505</span>  public ReportRSFatalErrorResponse reportRSFatalError(<a name="line.505"></a>
-<span class="sourceLineNo">506</span>      RpcController controller, ReportRSFatalErrorRequest request) throws ServiceException {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    String errorText = request.getErrorMessage();<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    ServerName sn = ProtobufUtil.toServerName(request.getServer());<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    String msg = "Region server " + sn<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      + " reported a fatal error:\n" + errorText;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    LOG.error(msg);<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    master.rsFatals.add(msg);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    return ReportRSFatalErrorResponse.newBuilder().build();<a name="line.513"></a>
-<span class="sourceLineNo">514</span>  }<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span>  @Override<a name="line.516"></a>
-<span class="sourceLineNo">517</span>  public AddColumnResponse addColumn(RpcController controller,<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      AddColumnRequest req) throws ServiceException {<a name="line.518"></a>
-<span class="sourceLineNo">519</span>    try {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>      long procId = master.addColumn(<a name="line.520"></a>
-<span class="sourceLineNo">521</span>          ProtobufUtil.toTableName(req.getTableName()),<a name="line.521"></a>
-<span class="sourceLineNo">522</span>          ProtobufUtil.toColumnFamilyDescriptor(req.getColumnFamilies()),<a name="line.522"></a>
-<span class="sourceLineNo">523</span>          req.getNonceGroup(),<a name="line.523"></a>
-<span class="sourceLineNo">524</span>          req.getNonce());<a name="line.524"></a>
-<span class="sourceLineNo">525</span>      if (procId == -1) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>        // This mean operation was not performed in server, so do not set any procId<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        return AddColumnResponse.newBuilder().build();<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      } else {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        return AddColumnResponse.newBuilder().setProcId(procId).build();<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    } catch (IOException ioe) {<a name="line.531"></a>
-<span class="sourceLineNo">532</span>      throw new ServiceException(ioe);<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    }<a name="line.533"></a>
-<span class="sourceLineNo">534</span>  }<a name="line.534"></a>
-<span class="sourceLineNo">535</span><a name="line.535"></a>
-<span class="sourceLineNo">536</span>  @Override<a name="line.536"></a>
-<span class="sourceLineNo">537</span>  public AssignRegionResponse assignRegion(RpcController controller,<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      AssignRegionRequest req) throws ServiceException {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    try {<a name="line.539"></a>
-<span class="sourceLineNo">540</span>      master.checkInitialized();<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>      final RegionSpecifierType type = req.getRegion().getType();<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      if (type != RegionSpecifierType.REGION_NAME) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>        LOG.warn("assignRegion specifier type: expected: " + RegionSpecifierType.REGION_NAME<a name="line.544"></a>
-<span class="sourceLineNo">545</span>          + " actual: " + type);<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>      final byte[] regionName = req.getRegion().getValue().toByteArray();<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      final RegionInfo regionInfo = master.getAssignmentManager().getRegionInfo(regionName);<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      if (regionInfo == null) throw new UnknownRegionException(Bytes.toStringBinary(regionName));<a name="line.550"></a>
-<span class="sourceLineNo">551</span><a name="line.551"></a>
-<span class="sourceLineNo">552</span>      final AssignRegionResponse arr = AssignRegionResponse.newBuilder().build();<a name="line.552"></a>
-<span class="sourceLineNo">553</span>      if (master.cpHost != null) {<a name="line.553"></a>
-<span class="sourceLineNo">554</span>        master.cpHost.preAssign(regionInfo);<a name="line.554"></a>
-<span class="sourceLineNo">555</span>      }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>      LOG.info(master.getClientIdAuditPrefix() + " assign " + regionInfo.getRegionNameAsString());<a name="line.556"></a>
-<span class="sourceLineNo">557</span>      master.getAssignmentManager().assign(regionInfo);<a name="line.557"></a>
-<span class="sourceLineNo">558</span>      if (master.cpHost != null) {<a name="line.558"></a>
-<span class="sourceLineNo">559</span>        master.cpHost.postAssign(regionInfo);<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      }<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      return arr;<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    } catch (IOException ioe) {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>      throw new ServiceException(ioe);<a name="line.563"></a>
-<span class="sourceLineNo">564</span>    }<a name="line.564"></a>
-<span class="sourceLineNo">565</span>  }<a name="line.565"></a>
-<span class="sourceLineNo">566</span><a name="line.566"></a>
-<span class="sourceLineNo">567</span><a name="line.567"></a>
-<span class="sourceLineNo">568</span>  @Override<a name="line.568"></a>
-<span class="sourceLineNo">569</span>  public BalanceResponse balance(RpcController controller,<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      BalanceRequest request) throws ServiceException {<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    try {<a name="line.571"></a>
-<span class="sourceLineNo">572</span>      return BalanceResponse.newBuilder().setBalancerRan(master.balance(<a name="line.572"></a>
-<span class="sourceLineNo">573</span>        request.hasForce() ? request.getForce() : false)).build();<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    } catch (IOException ex) {<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      throw new ServiceException(ex);<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    }<a name="line.576"></a>
-<span class="sourceLineNo">577</span>  }<a name="line.577"></a>
-<span class="sourceLineNo">578</span><a name="line.578"></a>
-<span class="sourceLineNo">579</span>  @Override<a name="line.579"></a>
-<span class="sourceLineNo">580</span>  public CreateNamespaceResponse createNamespace(RpcController controller,<a name="line.580"></a>
-<span class="sourceLineNo">581</span>     CreateNamespaceRequest request) throws ServiceException {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    try {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      long procId = master.createNamespace(<a name="line.583"></a>
-<span class="sourceLineNo">584</span>        ProtobufUtil.toNamespaceDescriptor(request.getNamespaceDescriptor()),<a name="line.584"></a>
-<span class="sourceLineNo">585</span>        request.getNonceGroup(),<a name="line.585"></a>
-<span class="sourceLineNo">586</span>        request.getNonce());<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      return CreateNamespaceResponse.newBuilder().setProcId(procId).build();<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    } catch (IOException e) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>      throw new ServiceException(e);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    }<a name="line.590"></a>
-<span class="sourceLineNo">591</span>  }<a name="line.591"></a>
-<span class="sourceLineNo">592</span><a name="line.592"></a>
-<span class="sourceLineNo">593</span>  @Override<a name="line.593"></a>
-<span class="sourceLineNo">594</span>  public CreateTableResponse createTable(RpcController controller, CreateTableRequest req)<a name="line.594"></a>
-<span class="sourceLineNo">595</span>  throws ServiceException {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>    TableDescriptor tableDescriptor = ProtobufUtil.toTableDescriptor(req.getTableSchema());<a name="line.596"></a>
-<span class="sourceLineNo">597</span>    byte [][] splitKeys = ProtobufUtil.getSplitKeysArray(req);<a name="line.597"></a>
-<span class="sourceLineNo">598</span>    try {<a name="line.598"></a>
-<span class="sourceLineNo">599</span>      long procId =<a name="line.599"></a>
-<span class="sourceLineNo">600</span>          master.createTable(tableDescriptor, splitKeys, req.getNonceGroup(), req.getNonce());<a name="line.600"></a>
-<span class="sourceLineNo">601</span>      return CreateTableResponse.newBuilder().setProcId(procId).build();<a name="line.601"></a>
-<span class="sourceLineNo">602</span>    } catch (IOException ioe) {<a name="line.602"></a>
-<span class="sourceLineNo">603</span>      throw new ServiceException(ioe);<a name="line.603"></a>
-<span class="sourceLineNo">604</span>    }<a name="line.604"></a>
-<span class="sourceLineNo">605</span>  }<a name="line.605"></a>
-<span class="sourceLineNo">606</span><a name="line.606"></a>
-<span class="sourceLineNo">607</span>  @Override<a name="line.607"></a>
-<span class="sourceLineNo">608</span>  public DeleteColumnResponse deleteColumn(RpcController controller,<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      DeleteColumnRequest req) throws ServiceException {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>    try {<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      long procId = master.deleteColumn(<a name="line.611"></a>
-<span class="sourceLineNo">612</span>        ProtobufUtil.toTableName(req.getTableName()),<a name="line.612"></a>
-<span class="sourceLineNo">613</span>        req.getColumnName().toByteArray(),<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        req.getNonceGroup(),<a name="line.614"></a>
-<span class="sourceLineNo">615</span>        req.getNonce());<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      if (procId == -1) {<a name="line.616"></a>
-<span class="sourceLineNo">617</span>        // This mean operation was not performed in server, so do not set any procId<a name="line.617"></a>
-<span class="sourceLineNo">618</span>        return DeleteColumnResponse.newBuilder().build();<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      } else {<a name="line.619"></a>
-<span class="sourceLineNo">620</span>        return DeleteColumnResponse.newBuilder().setProcId(procId).build();<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      }<a name="line.621"></a>
-<span class="sourceLineNo">622</span>    } catch (IOException ioe) {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      throw new ServiceException(ioe);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>    }<a name="line.624"></a>
-<span class="sourceLineNo">625</span>  }<a name="line.625"></a>
-<span class="sourceLineNo">626</span><a name="line.626"></a>
-<span class="sourceLineNo">627</span>  @Override<a name="line.627"></a>
-<span class="sourceLineNo">628</span>  public DeleteNamespaceResponse deleteNamespace(RpcController controller,<a name="line.628"></a>
-<span class="sourceLineNo">629</span>      DeleteNamespaceRequest request) throws ServiceException {<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    try {<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      long procId = master.deleteNamespace(<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        request.getNamespaceName(),<a name="line.632"></a>
-<span class="sourceLineNo">633</span>        request.getNonceGroup(),<a name="line.633"></a>
-<span class="sourceLineNo">634</span>        request.getNonce());<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      return DeleteNamespaceResponse.newBuilder().setProcId(procId).build();<a name="line.635"></a>
-<span class="sourceLineNo">636</span>    } catch (IOException e) {<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      throw new ServiceException(e);<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    }<a name="line.638"></a>
-<span class="sourceLineNo">639</span>  }<a name="line.639"></a>
-<span class="sourceLineNo">640</span><a name="line.640"></a>
-<span class="sourceLineNo">641</span>  /**<a name="line.641"></a>
-<span class="sourceLineNo">642</span>   * Execute Delete Snapshot operation.<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * @return DeleteSnapshotResponse (a protobuf wrapped void) if the snapshot existed and was<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   *    deleted properly.<a name="line.644"></a>
-<span class="sourceLineNo">645</span>   * @throws ServiceException wrapping SnapshotDoesNotExistException if specified snapshot did not<a name="line.645"></a>
-<span class="sourceLineNo">646</span>   *    exist.<a name="line.646"></a>
-<span class="sourceLineNo">647</span>   */<a name="line.647"></a>
-<span class="sourceLineNo">648</span>  @Override<a name="line.648"></a>
-<span class="sourceLineNo">649</span>  public DeleteSnapshotResponse deleteSnapshot(RpcController controller,<a name="line.649"></a>
-<span class="sourceLineNo">650</span>      DeleteSnapshotRequest request) throws ServiceException {<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    try {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      master.checkInitialized();<a name="line.652"></a>
-<span class="sourceLineNo">653</span>      master.snapshotManager.checkSnapshotSupport();<a name="line.653"></a>
-<span class="sourceLineNo">654</span><a name="line.654"></a>
-<span class="sourceLineNo">655</span>      LOG.info(master.getClientIdAuditPrefix() + " delete " + request.getSnapshot());<a name="line.655"></a>
-<span class="sourceLineNo">656</span>      master.snapshotManager.deleteSnapshot(request.getSnapshot());<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      return DeleteSnapshotResponse.newBuilder().build();<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    } catch (IOException e) {<a name="line.658"></a>
-<span class="sourceLineNo">659</span>      throw new ServiceException(e);<a name="line.659"></a>
-<span class="sourceLineNo">660</span>    }<a name="line.660"></a>
-<span class="sourceLineNo">661</span>  }<a name="line.661"></a>
-<span class="sourceLineNo">662</span><a name="line.662"></a>
-<span class="sourceLineNo">663</span>  @Override<a name="line.663"></a>
-<span class="sourceLineNo">664</span>  public DeleteTableResponse deleteTable(RpcController controller,<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      DeleteTableRequest request) throws ServiceException {<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    try {<a name="line.666"></a>
-<span class="sourceLineNo">667</span>      long procId = master.deleteTable(ProtobufUtil.toTableName(<a name="line.667"></a>
-<span class="sourceLineNo">668</span>          request.getTableName()), request.getNonceGroup(), request.getNonce());<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      return DeleteTableResponse.newBuilder().setProcId(procId).build();<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    } catch (IOException ioe) {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>      throw new ServiceException(ioe);<a name="line.671"></a>
-<span class="sourceLineNo">672</span>    }<a name="line.672"></a>
-<span class="sourceLineNo">673</span>  }<a name="line.673"></a>
-<span class="sourceLineNo">674</span><a name="line.674"></a>
-<span class="sourceLineNo">675</span>  @Override<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  public TruncateTableResponse truncateTable(RpcController controller, TruncateTableRequest request)<a name="line.676"></a>
-<span class="sourceLineNo">677</span>      throws ServiceException {<a name="line.677"></a>
-<span class="sourceLineNo">678</span>    try {<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      long procId = master.truncateTable(<a name="line.679"></a>
-<span class="sourceLineNo">680</span>        ProtobufUtil.toTableName(request.getTableName()),<a name="line.680"></a>
-<span class="sourceLineNo">681</span>        request.getPreserveSplits(),<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        request.getNonceGroup(),<a name="line.682"></a>
-<span class="sourceLineNo">683</span>        request.getNonce());<a name="line.683"></a>
-<span class="sourceLineNo">684</span>      return TruncateTableResponse.newBuilder().setProcId(procId).build();<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    } catch (IOException ioe) {<a name="line.685"></a>
-<span class="sourceLineNo">686</span>      throw new ServiceException(ioe);<a name="line.686"></a>
-<span class="sourceLineNo">687</span>    }<a name="line.687"></a>
-<span class="sourceLineNo">688</span>  }<a name="line.688"></a>
-<span class="sourceLineNo">689</span><a name="line.689"></a>
-<span class="sourceLineNo">690</span>  @Override<a name="line.690"></a>
-<span class="sourceLineNo">691</span>  public DisableTableResponse disableTable(RpcController controller,<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      DisableTableRequest request) throws ServiceException {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    try {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>      long procId = master.disableTable(<a name="line.694"></a>
-<span class="sourceLineNo">695</span>        ProtobufUtil.toTableName(request.getTableName()),<a name="line.695"></a>
-<span class="sourceLineNo">696</span>        request.getNonceGroup(),<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        request.getNonce());<a name="line.697"></a>
-<span class="sourceLineNo">698</span>      return DisableTableResponse.newBuilder().setProcId(procId).build();<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    } catch (IOException ioe) {<a name="line.699"></a>
-<span class="sourceLineNo">700</span>      throw new ServiceException(ioe);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>    }<a name="line.701"></a>
-<span class="sourceLineNo">702</span>  }<a name="line.702"></a>
-<span class="sourceLineNo">703</span><a name="line.703"></a>
-<span class="sourceLineNo">704</span>  @Override<a name="line.704"></a>
-<span class="sourceLineNo">705</span>  public EnableCatalogJanitorResponse enableCatalogJanitor(RpcController c,<a name="line.705"></a>
-<span class="sourceLineNo">706</span>      EnableCatalogJanitorRequest req) throws ServiceException {<a name="line.706"></a>
-<span class="sourceLineNo">707</span>    rpcPreCheck("enableCatalogJanitor");<a name="line.707"></a>
-<span class="sourceLineNo">708</span>    return EnableCatalogJanitorResponse.newBuilder().setPrevValue(<a name="line.708"></a>
-<span class="sourceLineNo">709</span>      master.catalogJanitorChore.setEnabled(req.getEnable())).build();<a name="line.709"></a>
-<span class="sourceLineNo">710</span>  }<a name="line.710"></a>
-<span class="sourceLineNo">711</span><a name="line.711"></a>
-<span class="sourceLineNo">712</span>  @Override<a name="line.712"></a>
-<span class="sourceLineNo">713</span>  public SetCleanerChoreRunningResponse setCleanerChoreRunning(<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    RpcController c, SetCleanerChoreRunningRequest req) throws ServiceException {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    rpcPreCheck("setCleanerChoreRunning");<a name="line.715"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockHeartbeatRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockHeartbeatResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockService;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ClearDeadServersRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ClearDeadServersResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DecommissionRegionServersRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DecommissionRegionServersResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableCatalogJanitorRequest;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableCatalogJanitorResponse;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetClusterStatusRequest;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetClusterStatusResponse;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetLocksRequest;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetLocksResponse;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProceduresRequest;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProceduresResponse;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableStateRequest;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableStateResponse;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledRequest;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledResponse;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCleanerChoreEnabledRequest;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCleanerChoreEnabledResponse;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsInMaintenanceModeRequest;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsInMaintenanceModeResponse;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsMasterRunningRequest;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsMasterRunningResponse;<a name="line.189"></a>
+<span class="sourceLineNo">190</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSplitOrMergeEnabledRequest;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSplitOrMergeEnabledResponse;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListDecommissionedRegionServersRequest;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListDecommissionedRegionServersResponse;<a name="line.199"></a>
+<span class="sourceLineNo">200</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceRequest;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceResponse;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByNamespaceRequest;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByNamespaceResponse;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampForRegionRequest;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampRequest;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.211"></a>
+<span class="sourceLineNo">212</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyTableRequest;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyTableResponse;<a name="line.217"></a>
+<span class="sourceLineNo">218</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.NormalizeRequest;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.NormalizeResponse;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RecommissionRegionServerRequest;<a name="line.224"></a>
+<span class="sourceLineNo">225</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RecommissionRegionServerResponse;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCatalogScanRequest;<a name="line.228"></a>
+<span class="sourceLineNo">229</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCatalogScanResponse;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCleanerChoreRequest;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCleanerChoreResponse;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest;<a name="line.232"></a>
+<span class="sourceLineNo">233</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetCleanerChoreRunningRequest;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetCleanerChoreRunningResponse;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetNormalizerRunningRequest;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetNormalizerRunningResponse;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.240"></a>
+<span class="sourceLi

<TRUNCATED>

[27/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/apidocs/index-all.html
----------------------------------------------------------------------
diff --git a/apidocs/index-all.html b/apidocs/index-all.html
index c89067f..cc8424a 100644
--- a/apidocs/index-all.html
+++ b/apidocs/index-all.html
@@ -9285,6 +9285,8 @@
 <div class="block"><span class="deprecationComment">As of release 2.0.0, this will be removed in HBase 3.0.0</span></div>
 </div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ServerMetrics.html#getVersion--">getVersion()</a></span> - Method in interface org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/VersionInfo.html#getVersion--">getVersion()</a></span> - Static method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/VersionInfo.html" title="class in org.apache.hadoop.hbase.util">VersionInfo</a></dt>
 <dd>
 <div class="block">Get the hbase version.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/apidocs/org/apache/hadoop/hbase/ServerLoad.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/ServerLoad.html b/apidocs/org/apache/hadoop/hbase/ServerLoad.html
index 21b048d..f9ac436 100644
--- a/apidocs/org/apache/hadoop/hbase/ServerLoad.html
+++ b/apidocs/org/apache/hadoop/hbase/ServerLoad.html
@@ -605,7 +605,7 @@ implements <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" titl
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></h3>
-<code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getVersionNumber--">getVersionNumber</a></code></li>
+<code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getVersion--">getVersion</a>, <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getVersionNumber--">getVersionNumber</a></code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/apidocs/org/apache/hadoop/hbase/ServerMetrics.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/ServerMetrics.html b/apidocs/org/apache/hadoop/hbase/ServerMetrics.html
index 63f8982..29337c5 100644
--- a/apidocs/org/apache/hadoop/hbase/ServerMetrics.html
+++ b/apidocs/org/apache/hadoop/hbase/ServerMetrics.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":18};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":18,"i13":18};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -181,6 +181,10 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getUsedHeapSize--">getUsedHeapSize</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i12" class="altColor">
+<td class="colFirst"><code>default <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/ServerMetrics.html#getVersion--">getVersion</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>default int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getVersionNumber--">getVersionNumber</a></span>()</code>&nbsp;</td>
 </tr>
@@ -221,13 +225,26 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 </dl>
 </li>
 </ul>
+<a name="getVersion--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getVersion</h4>
+<pre>default&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/ServerMetrics.html#line.46">getVersion</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the string type version of a regionserver.</dd>
+</dl>
+</li>
+</ul>
 <a name="getRequestCountPerSecond--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getRequestCountPerSecond</h4>
-<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.46">getRequestCountPerSecond</a>()</pre>
+<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.53">getRequestCountPerSecond</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the number of requests per second.</dd>
@@ -240,7 +257,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <ul class="blockList">
 <li class="blockList">
 <h4>getRequestCount</h4>
-<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.51">getRequestCount</a>()</pre>
+<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.58">getRequestCount</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>total Number of requests from the start of the region server.</dd>
@@ -253,7 +270,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <ul class="blockList">
 <li class="blockList">
 <h4>getUsedHeapSize</h4>
-<pre><a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.56">getUsedHeapSize</a>()</pre>
+<pre><a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.63">getUsedHeapSize</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the amount of used heap</dd>
@@ -266,7 +283,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxHeapSize</h4>
-<pre><a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.61">getMaxHeapSize</a>()</pre>
+<pre><a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.68">getMaxHeapSize</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the maximum allowable size of the heap</dd>
@@ -279,7 +296,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <ul class="blockList">
 <li class="blockList">
 <h4>getInfoServerPort</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.63">getInfoServerPort</a>()</pre>
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.70">getInfoServerPort</a>()</pre>
 </li>
 </ul>
 <a name="getReplicationLoadSourceList--">
@@ -288,7 +305,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplicationLoadSourceList</h4>
-<pre><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/replication/ReplicationLoadSource.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSource</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.69">getReplicationLoadSourceList</a>()</pre>
+<pre><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/replication/ReplicationLoadSource.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSource</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.76">getReplicationLoadSourceList</a>()</pre>
 <div class="block">Call directly from client such as hbase shell</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -303,7 +320,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <li class="blockList">
 <h4>getReplicationLoadSink</h4>
 <pre>@Nullable
-<a href="../../../../org/apache/hadoop/hbase/replication/ReplicationLoadSink.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSink</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.76">getReplicationLoadSink</a>()</pre>
+<a href="../../../../org/apache/hadoop/hbase/replication/ReplicationLoadSink.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSink</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.83">getReplicationLoadSink</a>()</pre>
 <div class="block">Call directly from client such as hbase shell</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -317,7 +334,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionMetrics</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="../../../../org/apache/hadoop/hbase/RegionMetrics.html" title="interface in org.apache.hadoop.hbase">RegionMetrics</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.81">getRegionMetrics</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="../../../../org/apache/hadoop/hbase/RegionMetrics.html" title="interface in org.apache.hadoop.hbase">RegionMetrics</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.88">getRegionMetrics</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>region load metrics</dd>
@@ -330,7 +347,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <ul class="blockList">
 <li class="blockList">
 <h4>getCoprocessorNames</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<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>&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.87">getCoprocessorNames</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<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>&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.94">getCoprocessorNames</a>()</pre>
 <div class="block">Return the RegionServer-level and Region-level coprocessors</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -344,7 +361,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <ul class="blockList">
 <li class="blockList">
 <h4>getReportTimestamp</h4>
-<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.92">getReportTimestamp</a>()</pre>
+<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.99">getReportTimestamp</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the timestamp (server side) of generating this metrics</dd>
@@ -357,7 +374,7 @@ public interface <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMet
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getLastReportTimestamp</h4>
-<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.97">getLastReportTimestamp</a>()</pre>
+<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetrics.html#line.104">getLastReportTimestamp</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the last timestamp (server side) of generating this metrics</dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/apidocs/src-html/org/apache/hadoop/hbase/ServerMetrics.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/ServerMetrics.html b/apidocs/src-html/org/apache/hadoop/hbase/ServerMetrics.html
index bf6f859..1f6ce4c 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/ServerMetrics.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/ServerMetrics.html
@@ -49,62 +49,69 @@
 <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>  /**<a name="line.43"></a>
-<span class="sourceLineNo">044</span>   * @return the number of requests per second.<a name="line.44"></a>
+<span class="sourceLineNo">044</span>   * @return the string type version of a regionserver.<a name="line.44"></a>
 <span class="sourceLineNo">045</span>   */<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  long getRequestCountPerSecond();<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">049</span>   * @return total Number of requests from the start of the region server.<a name="line.49"></a>
-<span class="sourceLineNo">050</span>   */<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  long getRequestCount();<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>   * @return the amount of used heap<a name="line.54"></a>
-<span class="sourceLineNo">055</span>   */<a name="line.55"></a>
-<span class="sourceLineNo">056</span>  Size getUsedHeapSize();<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>   * @return the maximum allowable size of the heap<a name="line.59"></a>
-<span class="sourceLineNo">060</span>   */<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  Size getMaxHeapSize();<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  int getInfoServerPort();<a name="line.63"></a>
+<span class="sourceLineNo">046</span>  default String getVersion() {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    return "0.0.0";<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>  /**<a name="line.50"></a>
+<span class="sourceLineNo">051</span>   * @return the number of requests per second.<a name="line.51"></a>
+<span class="sourceLineNo">052</span>   */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  long getRequestCountPerSecond();<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>   * @return total Number of requests from the start of the region server.<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   */<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  long getRequestCount();<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>   * @return the amount of used heap<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  Size getUsedHeapSize();<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>   * Call directly from client such as hbase shell<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   * @return the list of ReplicationLoadSource<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   */<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  List&lt;ReplicationLoadSource&gt; getReplicationLoadSourceList();<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>   * Call directly from client such as hbase shell<a name="line.72"></a>
-<span class="sourceLineNo">073</span>   * @return ReplicationLoadSink<a name="line.73"></a>
-<span class="sourceLineNo">074</span>   */<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  @Nullable<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  ReplicationLoadSink getReplicationLoadSink();<a name="line.76"></a>
+<span class="sourceLineNo">066</span>   * @return the maximum allowable size of the heap<a name="line.66"></a>
+<span class="sourceLineNo">067</span>   */<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  Size getMaxHeapSize();<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>  int getInfoServerPort();<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>   * Call directly from client such as hbase shell<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   * @return the list of ReplicationLoadSource<a name="line.74"></a>
+<span class="sourceLineNo">075</span>   */<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  List&lt;ReplicationLoadSource&gt; getReplicationLoadSourceList();<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>   * @return region load metrics<a name="line.79"></a>
-<span class="sourceLineNo">080</span>   */<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  Map&lt;byte[], RegionMetrics&gt; getRegionMetrics();<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>   * Return the RegionServer-level and Region-level coprocessors<a name="line.84"></a>
-<span class="sourceLineNo">085</span>   * @return string set of loaded RegionServer-level and Region-level coprocessors<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   */<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  Set&lt;String&gt; getCoprocessorNames();<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>   * @return the timestamp (server side) of generating this metrics<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   */<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  long getReportTimestamp();<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>   * @return the last timestamp (server side) of generating this metrics<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   */<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  long getLastReportTimestamp();<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">079</span>   * Call directly from client such as hbase shell<a name="line.79"></a>
+<span class="sourceLineNo">080</span>   * @return ReplicationLoadSink<a name="line.80"></a>
+<span class="sourceLineNo">081</span>   */<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  @Nullable<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  ReplicationLoadSink getReplicationLoadSink();<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>   * @return region load metrics<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   */<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  Map&lt;byte[], RegionMetrics&gt; getRegionMetrics();<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>   * Return the RegionServer-level and Region-level coprocessors<a name="line.91"></a>
+<span class="sourceLineNo">092</span>   * @return string set of loaded RegionServer-level and Region-level coprocessors<a name="line.92"></a>
+<span class="sourceLineNo">093</span>   */<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  Set&lt;String&gt; getCoprocessorNames();<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>   * @return the timestamp (server side) of generating this metrics<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   */<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  long getReportTimestamp();<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>   * @return the last timestamp (server side) of generating this metrics<a name="line.102"></a>
+<span class="sourceLineNo">103</span>   */<a name="line.103"></a>
+<span class="sourceLineNo">104</span>  long getLastReportTimestamp();<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>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index 37552bd..3143cc4 100644
--- a/book.html
+++ b/book.html
@@ -27797,15 +27797,20 @@ whether the old co-processors are still compatible with the actual HBase version
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">$ bin/hbase pre-upgrade validate-cp &lt;jar&gt; -scan|&lt;classes&gt;
+<pre class="CodeRay highlight"><code data-lang="bash">$ bin/hbase pre-upgrade validate-cp [-jar ...] [-class ... | -table ... | -config]
 Options:
- -e      Treat warnings as errors.
- -scan   Scan jar for observers.</code></pre>
+ -e            Treat warnings as errors.
+ -jar &lt;arg&gt;    Jar file/directory of the coprocessor.
+ -table &lt;arg&gt;  Table coprocessor(s) to check.
+ -class &lt;arg&gt;  Coprocessor class(es) to check.
+ -config         Scan jar for observers.</code></pre>
 </div>
 </div>
 <div class="paragraph">
-<p>The first parameter of the tool is the <code>jar</code> file which holds the co-processor implementation. Further parameters can be <code>-scan</code> when the tool will
-search the jar file for <code>Coprocessor</code> implementations or the <code>classes</code> can be explicitly given.</p>
+<p>The co-processor classes can be explicitly declared by <code>-class</code> option, or they can be obtained from HBase configuration by <code>-config</code> option.
+Table level co-processors can be also checked by <code>-table</code> option. The tool searches for co-processors on its classpath, but it can be extended
+by the <code>-jar</code> option. It is possible to test multiple classes with multiple <code>-class</code>, multiple tables with multiple <code>-table</code> options as well as
+adding multiple jars to the classpath with multiple <code>-jar</code> options.</p>
 </div>
 <div class="paragraph">
 <p>The tool can report errors and warnings. Errors mean that HBase won&#8217;t be able to load the coprocessor, because it is incompatible with the current version
@@ -27820,9 +27825,20 @@ for warnings.</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="CodeRay highlight"><code data-lang="bash">$ bin/hbase pre-upgrade validate-cp my-coprocessor.jar MyMasterObserver MyRegionObserver</code></pre>
+<pre class="CodeRay highlight"><code data-lang="bash">$ bin/hbase pre-upgrade validate-cp -jar my-coprocessor.jar -class MyMasterObserver -class MyRegionObserver</code></pre>
 </div>
 </div>
+<div class="paragraph">
+<p>It validates <code>MyMasterObserver</code> and <code>MyRegionObserver</code> classes which are located in <code>my-coprocessor.jar</code>.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="bash">$ bin/hbase pre-upgrade validate-cp -table .*</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>It validates every table level co-processors where the table name matches to <code>.*</code> regular expression.</p>
+</div>
 </div>
 <div class="sect3">
 <h4 id="_datablockencoding_validation"><a class="anchor" href="#_datablockencoding_validation"></a>149.22.2. DataBlockEncoding validation</h4>
@@ -40768,7 +40784,7 @@ org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/
 <div id="footer">
 <div id="footer-text">
 Version 3.0.0-SNAPSHOT<br>
-Last updated 2018-07-09 14:29:18 UTC
+Last updated 2018-07-10 17:05:39 UTC
 </div>
 </div>
 </body>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index 5b46f60..3ceca17 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 417b5bb..1f5d226 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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" />
@@ -33037,7 +33037,7 @@
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>87</td></tr></table></div>
+<td>79</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.backoff.ClientBackoffPolicyFactory.java">org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicyFactory.java</h3>
 <table border="0" class="table table-striped">
@@ -61549,931 +61549,931 @@
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
-<td>441</td></tr>
+<td>440</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'ctor def' child has incorrect indentation level 7, expected level should be 6.</td>
-<td>444</td></tr>
+<td>443</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'ctor def' child has incorrect indentation level 7, expected level should be 6.</td>
-<td>445</td></tr>
+<td>444</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 101).</td>
-<td>455</td></tr>
+<td>454</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 105).</td>
-<td>457</td></tr>
+<td>456</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>458</td></tr>
+<td>457</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 103).</td>
-<td>460</td></tr>
+<td>459</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 118).</td>
-<td>461</td></tr>
+<td>460</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 120).</td>
-<td>462</td></tr>
+<td>461</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 103).</td>
-<td>463</td></tr>
+<td>462</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 115).</td>
-<td>467</td></tr>
+<td>466</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 104).</td>
-<td>496</td></tr>
+<td>495</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>641</td></tr>
+<td>640</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 131).</td>
-<td>655</td></tr>
+<td>654</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>785</td></tr>
+<td>784</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 232 lines (max allowed is 150).</td>
-<td>838</td></tr>
+<td>837</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 3, expected level should be 4.</td>
-<td>1225</td></tr>
+<td>1224</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 3, expected level should be 4.</td>
-<td>1227</td></tr>
+<td>1226</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 3, expected level should be 4.</td>
-<td>1229</td></tr>
+<td>1228</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 3, expected level should be 4.</td>
-<td>1231</td></tr>
+<td>1230</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 3, expected level should be 4.</td>
-<td>1233</td></tr>
+<td>1232</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 3, expected level should be 4.</td>
-<td>1241</td></tr>
+<td>1240</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 3, expected level should be 4.</td>
-<td>1242</td></tr>
+<td>1241</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 3, expected level should be 4.</td>
-<td>1247</td></tr>
+<td>1246</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 3, expected level should be 4.</td>
-<td>1248</td></tr>
+<td>1247</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1456</td></tr>
+<td>1455</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1478</td></tr>
+<td>1477</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1495</td></tr>
+<td>1494</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1530</td></tr>
+<td>1529</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
-<td>1674</td></tr>
+<td>1673</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
-<td>1678</td></tr>
+<td>1677</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1690</td></tr>
+<td>1689</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1692</td></tr>
+<td>1691</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1694</td></tr>
+<td>1693</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1697</td></tr>
+<td>1696</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1700</td></tr>
+<td>1699</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1701</td></tr>
+<td>1700</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1703</td></tr>
+<td>1702</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1705</td></tr>
+<td>1704</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1706</td></tr>
+<td>1705</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' has incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>1707</td></tr>
+<td>1706</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>1713</td></tr>
+<td>1712</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1717</td></tr>
+<td>1716</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1719</td></tr>
+<td>1718</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1720</td></tr>
+<td>1719</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1723</td></tr>
+<td>1722</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1724</td></tr>
+<td>1723</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1726</td></tr>
+<td>1725</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1728</td></tr>
+<td>1727</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1729</td></tr>
+<td>1728</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' has incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>1730</td></tr>
+<td>1729</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 116).</td>
-<td>1749</td></tr>
+<td>1748</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 105).</td>
-<td>1751</td></tr>
+<td>1750</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1842</td></tr>
+<td>1841</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1844</td></tr>
+<td>1843</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1846</td></tr>
+<td>1845</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1853</td></tr>
+<td>1852</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1854</td></tr>
+<td>1853</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1856</td></tr>
+<td>1855</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1858</td></tr>
+<td>1857</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1859</td></tr>
+<td>1858</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1861</td></tr>
+<td>1860</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1863</td></tr>
+<td>1862</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1864</td></tr>
+<td>1863</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' has incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>1865</td></tr>
+<td>1864</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>1895</td></tr>
+<td>1894</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>2145</td></tr>
+<td>2144</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2146</td></tr>
+<td>2145</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>2153</td></tr>
+<td>2152</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2154</td></tr>
+<td>2153</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>2160</td></tr>
+<td>2159</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2161</td></tr>
+<td>2160</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>2168</td></tr>
+<td>2167</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2169</td></tr>
+<td>2168</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>2174</td></tr>
+<td>2173</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2192</td></tr>
+<td>2191</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2194</td></tr>
+<td>2193</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2196</td></tr>
+<td>2195</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2202</td></tr>
+<td>2201</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2203</td></tr>
+<td>2202</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2205</td></tr>
+<td>2204</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2207</td></tr>
+<td>2206</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2208</td></tr>
+<td>2207</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2210</td></tr>
+<td>2209</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2212</td></tr>
+<td>2211</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2213</td></tr>
+<td>2212</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' has incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2214</td></tr>
+<td>2213</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2227</td></tr>
+<td>2226</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2229</td></tr>
+<td>2228</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2231</td></tr>
+<td>2230</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2232</td></tr>
+<td>2231</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2233</td></tr>
+<td>2232</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2235</td></tr>
+<td>2234</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2237</td></tr>
+<td>2236</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2238</td></tr>
+<td>2237</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2240</td></tr>
+<td>2239</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2242</td></tr>
+<td>2241</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2243</td></tr>
+<td>2242</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' has incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2244</td></tr>
+<td>2243</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2327</td></tr>
+<td>2326</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2329</td></tr>
+<td>2328</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2335</td></tr>
+<td>2334</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2336</td></tr>
+<td>2335</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' has incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
-<td>2337</td></tr>
+<td>2336</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 12, expected level should be one of the following: 14, 16.</td>
-<td>2338</td></tr>
+<td>2337</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' has incorrect indentation level 12, expected level should be one of the following: 14, 16.</td>
-<td>2339</td></tr>
+<td>2338</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 14, expected level should be one of the following: 16, 18.</td>
-<td>2340</td></tr>
+<td>2339</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' has incorrect indentation level 14, expected level should be one of the following: 16, 18.</td>
-<td>2341</td></tr>
+<td>2340</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 16, expected level should be one of the following: 18, 20.</td>
-<td>2342</td></tr>
+<td>2341</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' has incorrect indentation level 14, expected level should be one of the following: 16, 18.</td>
-<td>2344</td></tr>
+<td>2343</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' has incorrect indentation level 12, expected level should be one of the following: 14, 16.</td>
-<td>2345</td></tr>
+<td>2344</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' has incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
-<td>2346</td></tr>
+<td>2345</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 12, expected level should be one of the following: 14, 16.</td>
-<td>2347</td></tr>
+<td>2346</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' has incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
-<td>2348</td></tr>
+<td>2347</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2349</td></tr>
+<td>2348</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2351</td></tr>
+<td>2350</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2358</td></tr>
+<td>2357</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2359</td></tr>
+<td>2358</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2361</td></tr>
+<td>2360</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2363</td></tr>
+<td>2362</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2364</td></tr>
+<td>2363</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2366</td></tr>
+<td>2365</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2368</td></tr>
+<td>2367</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2369</td></tr>
+<td>2368</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' has incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2370</td></tr>
+<td>2369</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2380</td></tr>
+<td>2379</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2382</td></tr>
+<td>2381</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2384</td></tr>
+<td>2383</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2394</td></tr>
+<td>2393</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2395</td></tr>
+<td>2394</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2397</td></tr>
+<td>2396</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2399</td></tr>
+<td>2398</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2400</td></tr>
+<td>2399</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2402</td></tr>
+<td>2401</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2404</td></tr>
+<td>2403</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2405</td></tr>
+<td>2404</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' has incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2406</td></tr>
+<td>2405</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>2418</td></tr>
+<td>2417</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2503</td></tr>
+<td>2502</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2507</td></tr>
+<td>2506</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2509</td></tr>
+<td>2508</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2511</td></tr>
+<td>2510</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2512</td></tr>
+<td>2511</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' has incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2513</td></tr>
+<td>2512</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>2974</td></tr>
+<td>2972</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>3150</td></tr>
+<td>3148</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>3152</td></tr>
+<td>3150</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>3244</td></tr>
+<td>3242</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
-<td>3274</td></tr>
+<td>3272</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>3281</td></tr>
+<td>3279</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>3286</td></tr>
+<td>3284</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>3315</td></tr>
+<td>3313</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 111).</td>
-<td>3413</td></tr>
+<td>3411</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>3581</td></tr>
+<td>3579</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>3631</td></tr></table></div>
+<td>3629</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.HMasterCommandLine.java">org/apache/hadoop/hbase/master/HMasterCommandLine.java</h3>
 <table border="0" class="table table-striped">
@@ -62839,67 +62839,67 @@
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>314</td></tr>
+<td>315</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>550</td></tr>
+<td>563</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>595</td></tr>
+<td>608</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>948</td></tr>
+<td>961</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>975</td></tr>
+<td>988</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>977</td></tr>
+<td>990</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>1016</td></tr>
+<td>1029</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>1121</td></tr>
+<td>1134</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1362</td></tr>
+<td>1375</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>1604</td></tr>
+<td>1617</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>1665</td></tr></table></div>
+<td>1678</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.MasterServices.java">org/apache/hadoop/hbase/master/MasterServices.java</h3>
 <table border="0" class="table table-striped">
@@ -64147,7 +64147,7 @@
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>220</td></tr>
+<td>221</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
@@ -121907,7 +121907,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index a7f5b17..8b38e46 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index dc3aff0..050d6c2 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index e8f63a6..8ae8585 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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" />
@@ -905,7 +905,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index e3baf72..b8b4360 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index 18c5c8a..0ff7063 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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" />
@@ -1011,7 +1011,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 653075c..4988db6 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3789,21 +3789,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 Jul  9 14:39:06 UTC 2018"</code></td>
+<td class="colLast"><code>"Tue Jul 10 17:15:36 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>"59867eeeebd28fcc49f338ef36769fb6a9bff4dc"</code></td>
+<td class="colLast"><code>"d7561cee50acf2e3a52b8a38c71259d60b653ed3"</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>"0c4202f0f4e6233beea2dec060218d34"</code></td>
+<td class="colLast"><code>"e26484db2adaa453ac5ea2d97df0d969"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">


[03/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassClassLoader.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassClassLoader.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassClassLoader.html
index 7896c2f..9597ff9 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassClassLoader.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassClassLoader.html
@@ -28,161 +28,249 @@
 <span class="sourceLineNo">020</span><a name="line.20"></a>
 <span class="sourceLineNo">021</span>import static org.junit.Assert.assertEquals;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import static org.junit.Assert.assertTrue;<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 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.Coprocessor;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.CoprocessorEnvironment;<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.HRegionInfo;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.junit.ClassRule;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.junit.Test;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.junit.experimental.categories.Category;<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>@Category({ SmallTests.class })<a name="line.42"></a>
-<span class="sourceLineNo">043</span>@SuppressWarnings("deprecation")<a name="line.43"></a>
-<span class="sourceLineNo">044</span>public class CoprocessorValidatorTest {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  @ClassRule<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.46"></a>
-<span class="sourceLineNo">047</span>      HBaseClassTestRule.forClass(CoprocessorValidatorTest.class);<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>  private CoprocessorValidator validator;<a name="line.49"></a>
-<span class="sourceLineNo">050</span><a name="line.50"></a>
-<span class="sourceLineNo">051</span>  public CoprocessorValidatorTest() {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    validator = new CoprocessorValidator();<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  }<a name="line.53"></a>
-<span class="sourceLineNo">054</span><a name="line.54"></a>
-<span class="sourceLineNo">055</span>  private static ClassLoader getClassLoader() {<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    return CoprocessorValidatorTest.class.getClassLoader();<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 String getFullClassName(String className) {<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    return CoprocessorValidatorTest.class.getName() + "$" + className;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  }<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  @SuppressWarnings({"rawtypes", "unused"})<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  private static class TestObserver implements Coprocessor {<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    @Override<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    public void start(CoprocessorEnvironment env) throws IOException {<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>    @Override<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    public void stop(CoprocessorEnvironment env) throws IOException {<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><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  @Test<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  public void testFilterObservers() throws Exception {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    String filterObservers = getFullClassName("TestObserver");<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    List&lt;String&gt; classNames = Lists.newArrayList(<a name="line.77"></a>
-<span class="sourceLineNo">078</span>        filterObservers, getClass().getName());<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    List&lt;String&gt; filteredClassNames = validator.filterObservers(getClassLoader(), classNames);<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span>    assertEquals(1, filteredClassNames.size());<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    assertEquals(filterObservers, filteredClassNames.get(0));<a name="line.82"></a>
+<span class="sourceLineNo">023</span>import static org.mockito.Mockito.doReturn;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import static org.mockito.Mockito.mock;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.io.IOException;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.io.InputStream;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.io.OutputStream;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.nio.file.Files;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.nio.file.Path;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.nio.file.Paths;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.util.ArrayList;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.List;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Optional;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.jar.JarOutputStream;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.regex.Pattern;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.zip.ZipEntry;<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HRegionInfo;<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.client.Admin;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.client.CoprocessorDescriptor;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.junit.ClassRule;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.junit.Test;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.junit.experimental.categories.Category;<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hbase.thirdparty.com.google.common.io.ByteStreams;<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>@Category({ SmallTests.class })<a name="line.58"></a>
+<span class="sourceLineNo">059</span>@SuppressWarnings("deprecation")<a name="line.59"></a>
+<span class="sourceLineNo">060</span>public class CoprocessorValidatorTest {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  @ClassRule<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      HBaseClassTestRule.forClass(CoprocessorValidatorTest.class);<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>  private CoprocessorValidator validator;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  public CoprocessorValidatorTest() {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    validator = new CoprocessorValidator();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    validator.setConf(HBaseConfiguration.create());<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>  private static ClassLoader getClassLoader() {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    return CoprocessorValidatorTest.class.getClassLoader();<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>  private static String getFullClassName(String className) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    return CoprocessorValidatorTest.class.getName() + "$" + className;<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>  private List&lt;CoprocessorViolation&gt; validateClass(String className) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    ClassLoader classLoader = getClass().getClassLoader();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    return validateClass(classLoader, className);<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>  private List&lt;CoprocessorViolation&gt; validate(String className) {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    ClassLoader classLoader = getClass().getClassLoader();<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    return validate(classLoader, className);<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>  private List&lt;CoprocessorViolation&gt; validate(ClassLoader classLoader, String className) {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    List&lt;String&gt; classNames = Lists.newArrayList(getClass().getName() + "$" + className);<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    return validator.validate(classLoader, classNames);<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>  /*<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * In this test case, we are try to load a not-existent class.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  @Test<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  public void testNoSuchClass() throws IOException {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    List&lt;CoprocessorViolation&gt; violations = validate("NoSuchClass");<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    assertEquals(1, violations.size());<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>    CoprocessorViolation violation = violations.get(0);<a name="line.103"></a>
+<span class="sourceLineNo">085</span>  private List&lt;CoprocessorViolation&gt; validateClass(ClassLoader classLoader, String className) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    List&lt;String&gt; classNames = Lists.newArrayList(getFullClassName(className));<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    List&lt;CoprocessorViolation&gt; violations = new ArrayList&lt;&gt;();<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>    validator.validateClasses(classLoader, classNames, violations);<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>    return violations;<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>   * In this test case, we are try to load a not-existent class.<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 testNoSuchClass() throws IOException {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    List&lt;CoprocessorViolation&gt; violations = validateClass("NoSuchClass");<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    assertEquals(1, violations.size());<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>    CoprocessorViolation violation = violations.get(0);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    assertEquals(getFullClassName("NoSuchClass"), violation.getClassName());<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    assertTrue(violation.getMessage().contains(<a name="line.105"></a>
-<span class="sourceLineNo">106</span>        "java.lang.ClassNotFoundException: " +<a name="line.106"></a>
-<span class="sourceLineNo">107</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$NoSuchClass"));<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>   * In this test case, we are validating MissingClass coprocessor, which<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   * references a missing class. With a special classloader, we prevent that<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * class to be loaded at runtime. It simulates similar cases where a class<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   * is no more on our classpath.<a name="line.114"></a>
-<span class="sourceLineNo">115</span>   * E.g. org.apache.hadoop.hbase.regionserver.wal.WALEdit was moved to<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   * org.apache.hadoop.hbase.wal, so class loading will fail on 2.0.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   */<a name="line.117"></a>
-<span class="sourceLineNo">118</span>  private static class MissingClass {<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>  @SuppressWarnings("unused")<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  private static class MissingClassObserver {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    public void method(MissingClass missingClass) {<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>  private static class MissingClassClassLoader extends ClassLoader {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    public MissingClassClassLoader() {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      super(getClassLoader());<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>    @Override<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    public Class&lt;?&gt; loadClass(String name) throws ClassNotFoundException {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      if (name.equals(getFullClassName("MissingClass"))) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>        throw new ClassNotFoundException(name);<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>      return super.findClass(name);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    }<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>  @Test<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  public void testMissingClass() throws IOException {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    MissingClassClassLoader missingClassClassLoader = new MissingClassClassLoader();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    List&lt;CoprocessorViolation&gt; violations = validate(missingClassClassLoader,<a name="line.145"></a>
-<span class="sourceLineNo">146</span>        "MissingClassObserver");<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    assertEquals(1, violations.size());<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>    CoprocessorViolation violation = violations.get(0);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    assertTrue(violation.getMessage().contains(<a name="line.151"></a>
-<span class="sourceLineNo">152</span>        "java.lang.ClassNotFoundException: " +<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$MissingClass"));<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>   * ObsoleteMethod coprocessor implements preCreateTable method which has<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   * HRegionInfo parameters. In our current implementation, we pass only<a name="line.158"></a>
-<span class="sourceLineNo">159</span>   * RegionInfo parameters, so this method won't be called by HBase at all.<a name="line.159"></a>
-<span class="sourceLineNo">160</span>   */<a name="line.160"></a>
-<span class="sourceLineNo">161</span>  @SuppressWarnings("unused")<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  private static class ObsoleteMethodObserver /* implements MasterObserver */ {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    public void preCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        HTableDescriptor desc, HRegionInfo[] regions) throws IOException {<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>  @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public void testObsoleteMethod() throws IOException {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    List&lt;CoprocessorViolation&gt; violations = validate("ObsoleteMethodObserver");<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    assertEquals(1, violations.size());<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>    CoprocessorViolation violation = violations.get(0);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    assertEquals(Severity.WARNING, violation.getSeverity());<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    assertTrue(violation.getMessage().contains("was removed from new coprocessor API"));<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">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>    String stackTrace = Throwables.getStackTraceAsString(violation.getThrowable());<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    assertTrue(stackTrace.contains("java.lang.ClassNotFoundException: " +<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$NoSuchClass"));<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>  /*<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   * In this test case, we are validating MissingClass coprocessor, which<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   * references a missing class. With a special classloader, we prevent that<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   * class to be loaded at runtime. It simulates similar cases where a class<a name="line.114"></a>
+<span class="sourceLineNo">115</span>   * is no more on our classpath.<a name="line.115"></a>
+<span class="sourceLineNo">116</span>   * E.g. org.apache.hadoop.hbase.regionserver.wal.WALEdit was moved to<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   * org.apache.hadoop.hbase.wal, so class loading will fail on 2.0.<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   */<a name="line.118"></a>
+<span class="sourceLineNo">119</span>  private static class MissingClass {<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>  @SuppressWarnings("unused")<a name="line.122"></a>
+<span class="sourceLineNo">123</span>  private static class MissingClassObserver {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public void method(MissingClass missingClass) {<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>  private static class MissingClassClassLoader extends ClassLoader {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    public MissingClassClassLoader() {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      super(getClassLoader());<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>    @Override<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    public Class&lt;?&gt; loadClass(String name) throws ClassNotFoundException {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      if (name.equals(getFullClassName("MissingClass"))) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        throw new ClassNotFoundException(name);<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>      return super.findClass(name);<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>  @Test<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  public void testMissingClass() throws IOException {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    MissingClassClassLoader missingClassClassLoader = new MissingClassClassLoader();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    List&lt;CoprocessorViolation&gt; violations = validateClass(missingClassClassLoader,<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        "MissingClassObserver");<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    assertEquals(1, violations.size());<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    CoprocessorViolation violation = violations.get(0);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    assertEquals(getFullClassName("MissingClassObserver"), violation.getClassName());<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>    String stackTrace = Throwables.getStackTraceAsString(violation.getThrowable());<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    assertTrue(stackTrace.contains("java.lang.ClassNotFoundException: " +<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$MissingClass"));<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>   * ObsoleteMethod coprocessor implements preCreateTable method which has<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   * HRegionInfo parameters. In our current implementation, we pass only<a name="line.161"></a>
+<span class="sourceLineNo">162</span>   * RegionInfo parameters, so this method won't be called by HBase at all.<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  @SuppressWarnings("unused")<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  private static class ObsoleteMethodObserver /* implements MasterObserver */ {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    public void preCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        HTableDescriptor desc, HRegionInfo[] regions) throws IOException {<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>  @Test<a name="line.171"></a>
+<span class="sourceLineNo">172</span>  public void testObsoleteMethod() throws IOException {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    List&lt;CoprocessorViolation&gt; violations = validateClass("ObsoleteMethodObserver");<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    assertEquals(1, violations.size());<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>    CoprocessorViolation violation = violations.get(0);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    assertEquals(Severity.WARNING, violation.getSeverity());<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    assertEquals(getFullClassName("ObsoleteMethodObserver"), violation.getClassName());<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    assertTrue(violation.getMessage().contains("was removed from new coprocessor API"));<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>  private List&lt;CoprocessorViolation&gt; validateTable(String jarFile, String className)<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      throws IOException {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    Pattern pattern = Pattern.compile(".*");<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>    Admin admin = mock(Admin.class);<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>    TableDescriptor tableDescriptor = mock(TableDescriptor.class);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    List&lt;TableDescriptor&gt; tableDescriptors = Lists.newArrayList(tableDescriptor);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    doReturn(tableDescriptors).when(admin).listTableDescriptors(pattern);<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>    CoprocessorDescriptor coprocessorDescriptor = mock(CoprocessorDescriptor.class);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    List&lt;CoprocessorDescriptor&gt; coprocessorDescriptors =<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        Lists.newArrayList(coprocessorDescriptor);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    doReturn(coprocessorDescriptors).when(tableDescriptor).getCoprocessorDescriptors();<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>    doReturn(getFullClassName(className)).when(coprocessorDescriptor).getClassName();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    doReturn(Optional.ofNullable(jarFile)).when(coprocessorDescriptor).getJarPath();<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>    List&lt;CoprocessorViolation&gt; violations = new ArrayList&lt;&gt;();<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>    validator.validateTables(getClassLoader(), admin, pattern, violations);<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>    return violations;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  }<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>  @Test<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  public void testTableNoSuchClass() throws IOException {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    List&lt;CoprocessorViolation&gt; violations = validateTable(null, "NoSuchClass");<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    assertEquals(1, violations.size());<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>    CoprocessorViolation violation = violations.get(0);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    assertEquals(getFullClassName("NoSuchClass"), violation.getClassName());<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>    String stackTrace = Throwables.getStackTraceAsString(violation.getThrowable());<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    assertTrue(stackTrace.contains("java.lang.ClassNotFoundException: " +<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$NoSuchClass"));<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>  @Test<a name="line.221"></a>
+<span class="sourceLineNo">222</span>  public void testTableMissingJar() throws IOException {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    List&lt;CoprocessorViolation&gt; violations = validateTable("no such file", "NoSuchClass");<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    assertEquals(1, violations.size());<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>    CoprocessorViolation violation = violations.get(0);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    assertEquals(getFullClassName("NoSuchClass"), violation.getClassName());<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    assertTrue(violation.getMessage().contains("could not validate jar file 'no such file'"));<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>  @Test<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  public void testTableValidJar() throws IOException {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    Path outputDirectory = Paths.get("target", "test-classes");<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    String className = getFullClassName("ObsoleteMethodObserver");<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    Path classFile = Paths.get(className.replace('.', '/') + ".class");<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    Path fullClassFile = outputDirectory.resolve(classFile);<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>    Path tempJarFile = Files.createTempFile("coprocessor-validator-test-", ".jar");<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>    try {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      try (OutputStream fileStream = Files.newOutputStream(tempJarFile);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>          JarOutputStream jarStream = new JarOutputStream(fileStream);<a name="line.243"></a>
+<span class="sourceLineNo">244</span>          InputStream classStream = Files.newInputStream(fullClassFile)) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        ZipEntry entry = new ZipEntry(classFile.toString());<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        jarStream.putNextEntry(entry);<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>        ByteStreams.copy(classStream, jarStream);<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>      String tempJarFileUri = tempJarFile.toUri().toString();<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>      List&lt;CoprocessorViolation&gt; violations =<a name="line.253"></a>
+<span class="sourceLineNo">254</span>          validateTable(tempJarFileUri, "ObsoleteMethodObserver");<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      assertEquals(1, violations.size());<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>      CoprocessorViolation violation = violations.get(0);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      assertEquals(getFullClassName("ObsoleteMethodObserver"), violation.getClassName());<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      assertEquals(Severity.WARNING, violation.getSeverity());<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      assertTrue(violation.getMessage().contains("was removed from new coprocessor API"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    } finally {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      Files.delete(tempJarFile);<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>}<a name="line.265"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html
index 7896c2f..9597ff9 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html
@@ -28,161 +28,249 @@
 <span class="sourceLineNo">020</span><a name="line.20"></a>
 <span class="sourceLineNo">021</span>import static org.junit.Assert.assertEquals;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import static org.junit.Assert.assertTrue;<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 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.Coprocessor;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.CoprocessorEnvironment;<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.HRegionInfo;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.junit.ClassRule;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.junit.Test;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.junit.experimental.categories.Category;<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>@Category({ SmallTests.class })<a name="line.42"></a>
-<span class="sourceLineNo">043</span>@SuppressWarnings("deprecation")<a name="line.43"></a>
-<span class="sourceLineNo">044</span>public class CoprocessorValidatorTest {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  @ClassRule<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.46"></a>
-<span class="sourceLineNo">047</span>      HBaseClassTestRule.forClass(CoprocessorValidatorTest.class);<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>  private CoprocessorValidator validator;<a name="line.49"></a>
-<span class="sourceLineNo">050</span><a name="line.50"></a>
-<span class="sourceLineNo">051</span>  public CoprocessorValidatorTest() {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    validator = new CoprocessorValidator();<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  }<a name="line.53"></a>
-<span class="sourceLineNo">054</span><a name="line.54"></a>
-<span class="sourceLineNo">055</span>  private static ClassLoader getClassLoader() {<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    return CoprocessorValidatorTest.class.getClassLoader();<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 String getFullClassName(String className) {<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    return CoprocessorValidatorTest.class.getName() + "$" + className;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  }<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  @SuppressWarnings({"rawtypes", "unused"})<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  private static class TestObserver implements Coprocessor {<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    @Override<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    public void start(CoprocessorEnvironment env) throws IOException {<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>    @Override<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    public void stop(CoprocessorEnvironment env) throws IOException {<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><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  @Test<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  public void testFilterObservers() throws Exception {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    String filterObservers = getFullClassName("TestObserver");<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    List&lt;String&gt; classNames = Lists.newArrayList(<a name="line.77"></a>
-<span class="sourceLineNo">078</span>        filterObservers, getClass().getName());<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    List&lt;String&gt; filteredClassNames = validator.filterObservers(getClassLoader(), classNames);<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span>    assertEquals(1, filteredClassNames.size());<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    assertEquals(filterObservers, filteredClassNames.get(0));<a name="line.82"></a>
+<span class="sourceLineNo">023</span>import static org.mockito.Mockito.doReturn;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import static org.mockito.Mockito.mock;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.io.IOException;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.io.InputStream;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.io.OutputStream;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.nio.file.Files;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.nio.file.Path;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.nio.file.Paths;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.util.ArrayList;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.List;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Optional;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.jar.JarOutputStream;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.regex.Pattern;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.zip.ZipEntry;<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HRegionInfo;<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.client.Admin;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.client.CoprocessorDescriptor;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.junit.ClassRule;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.junit.Test;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.junit.experimental.categories.Category;<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hbase.thirdparty.com.google.common.io.ByteStreams;<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>@Category({ SmallTests.class })<a name="line.58"></a>
+<span class="sourceLineNo">059</span>@SuppressWarnings("deprecation")<a name="line.59"></a>
+<span class="sourceLineNo">060</span>public class CoprocessorValidatorTest {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  @ClassRule<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      HBaseClassTestRule.forClass(CoprocessorValidatorTest.class);<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>  private CoprocessorValidator validator;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  public CoprocessorValidatorTest() {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    validator = new CoprocessorValidator();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    validator.setConf(HBaseConfiguration.create());<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>  private static ClassLoader getClassLoader() {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    return CoprocessorValidatorTest.class.getClassLoader();<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>  private static String getFullClassName(String className) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    return CoprocessorValidatorTest.class.getName() + "$" + className;<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>  private List&lt;CoprocessorViolation&gt; validateClass(String className) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    ClassLoader classLoader = getClass().getClassLoader();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    return validateClass(classLoader, className);<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>  private List&lt;CoprocessorViolation&gt; validate(String className) {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    ClassLoader classLoader = getClass().getClassLoader();<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    return validate(classLoader, className);<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>  private List&lt;CoprocessorViolation&gt; validate(ClassLoader classLoader, String className) {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    List&lt;String&gt; classNames = Lists.newArrayList(getClass().getName() + "$" + className);<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    return validator.validate(classLoader, classNames);<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>  /*<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * In this test case, we are try to load a not-existent class.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  @Test<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  public void testNoSuchClass() throws IOException {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    List&lt;CoprocessorViolation&gt; violations = validate("NoSuchClass");<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    assertEquals(1, violations.size());<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>    CoprocessorViolation violation = violations.get(0);<a name="line.103"></a>
+<span class="sourceLineNo">085</span>  private List&lt;CoprocessorViolation&gt; validateClass(ClassLoader classLoader, String className) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    List&lt;String&gt; classNames = Lists.newArrayList(getFullClassName(className));<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    List&lt;CoprocessorViolation&gt; violations = new ArrayList&lt;&gt;();<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>    validator.validateClasses(classLoader, classNames, violations);<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>    return violations;<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>   * In this test case, we are try to load a not-existent class.<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 testNoSuchClass() throws IOException {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    List&lt;CoprocessorViolation&gt; violations = validateClass("NoSuchClass");<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    assertEquals(1, violations.size());<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>    CoprocessorViolation violation = violations.get(0);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    assertEquals(getFullClassName("NoSuchClass"), violation.getClassName());<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    assertTrue(violation.getMessage().contains(<a name="line.105"></a>
-<span class="sourceLineNo">106</span>        "java.lang.ClassNotFoundException: " +<a name="line.106"></a>
-<span class="sourceLineNo">107</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$NoSuchClass"));<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>   * In this test case, we are validating MissingClass coprocessor, which<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   * references a missing class. With a special classloader, we prevent that<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * class to be loaded at runtime. It simulates similar cases where a class<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   * is no more on our classpath.<a name="line.114"></a>
-<span class="sourceLineNo">115</span>   * E.g. org.apache.hadoop.hbase.regionserver.wal.WALEdit was moved to<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   * org.apache.hadoop.hbase.wal, so class loading will fail on 2.0.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   */<a name="line.117"></a>
-<span class="sourceLineNo">118</span>  private static class MissingClass {<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>  @SuppressWarnings("unused")<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  private static class MissingClassObserver {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    public void method(MissingClass missingClass) {<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>  private static class MissingClassClassLoader extends ClassLoader {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    public MissingClassClassLoader() {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      super(getClassLoader());<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>    @Override<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    public Class&lt;?&gt; loadClass(String name) throws ClassNotFoundException {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      if (name.equals(getFullClassName("MissingClass"))) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>        throw new ClassNotFoundException(name);<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>      return super.findClass(name);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    }<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>  @Test<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  public void testMissingClass() throws IOException {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    MissingClassClassLoader missingClassClassLoader = new MissingClassClassLoader();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    List&lt;CoprocessorViolation&gt; violations = validate(missingClassClassLoader,<a name="line.145"></a>
-<span class="sourceLineNo">146</span>        "MissingClassObserver");<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    assertEquals(1, violations.size());<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>    CoprocessorViolation violation = violations.get(0);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    assertTrue(violation.getMessage().contains(<a name="line.151"></a>
-<span class="sourceLineNo">152</span>        "java.lang.ClassNotFoundException: " +<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$MissingClass"));<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>   * ObsoleteMethod coprocessor implements preCreateTable method which has<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   * HRegionInfo parameters. In our current implementation, we pass only<a name="line.158"></a>
-<span class="sourceLineNo">159</span>   * RegionInfo parameters, so this method won't be called by HBase at all.<a name="line.159"></a>
-<span class="sourceLineNo">160</span>   */<a name="line.160"></a>
-<span class="sourceLineNo">161</span>  @SuppressWarnings("unused")<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  private static class ObsoleteMethodObserver /* implements MasterObserver */ {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    public void preCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        HTableDescriptor desc, HRegionInfo[] regions) throws IOException {<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>  @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public void testObsoleteMethod() throws IOException {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    List&lt;CoprocessorViolation&gt; violations = validate("ObsoleteMethodObserver");<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    assertEquals(1, violations.size());<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>    CoprocessorViolation violation = violations.get(0);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    assertEquals(Severity.WARNING, violation.getSeverity());<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    assertTrue(violation.getMessage().contains("was removed from new coprocessor API"));<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">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>    String stackTrace = Throwables.getStackTraceAsString(violation.getThrowable());<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    assertTrue(stackTrace.contains("java.lang.ClassNotFoundException: " +<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$NoSuchClass"));<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>  /*<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   * In this test case, we are validating MissingClass coprocessor, which<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   * references a missing class. With a special classloader, we prevent that<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   * class to be loaded at runtime. It simulates similar cases where a class<a name="line.114"></a>
+<span class="sourceLineNo">115</span>   * is no more on our classpath.<a name="line.115"></a>
+<span class="sourceLineNo">116</span>   * E.g. org.apache.hadoop.hbase.regionserver.wal.WALEdit was moved to<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   * org.apache.hadoop.hbase.wal, so class loading will fail on 2.0.<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   */<a name="line.118"></a>
+<span class="sourceLineNo">119</span>  private static class MissingClass {<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>  @SuppressWarnings("unused")<a name="line.122"></a>
+<span class="sourceLineNo">123</span>  private static class MissingClassObserver {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public void method(MissingClass missingClass) {<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>  private static class MissingClassClassLoader extends ClassLoader {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    public MissingClassClassLoader() {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      super(getClassLoader());<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>    @Override<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    public Class&lt;?&gt; loadClass(String name) throws ClassNotFoundException {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      if (name.equals(getFullClassName("MissingClass"))) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        throw new ClassNotFoundException(name);<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>      return super.findClass(name);<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>  @Test<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  public void testMissingClass() throws IOException {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    MissingClassClassLoader missingClassClassLoader = new MissingClassClassLoader();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    List&lt;CoprocessorViolation&gt; violations = validateClass(missingClassClassLoader,<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        "MissingClassObserver");<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    assertEquals(1, violations.size());<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    CoprocessorViolation violation = violations.get(0);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    assertEquals(getFullClassName("MissingClassObserver"), violation.getClassName());<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>    String stackTrace = Throwables.getStackTraceAsString(violation.getThrowable());<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    assertTrue(stackTrace.contains("java.lang.ClassNotFoundException: " +<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$MissingClass"));<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>   * ObsoleteMethod coprocessor implements preCreateTable method which has<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   * HRegionInfo parameters. In our current implementation, we pass only<a name="line.161"></a>
+<span class="sourceLineNo">162</span>   * RegionInfo parameters, so this method won't be called by HBase at all.<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  @SuppressWarnings("unused")<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  private static class ObsoleteMethodObserver /* implements MasterObserver */ {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    public void preCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        HTableDescriptor desc, HRegionInfo[] regions) throws IOException {<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>  @Test<a name="line.171"></a>
+<span class="sourceLineNo">172</span>  public void testObsoleteMethod() throws IOException {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    List&lt;CoprocessorViolation&gt; violations = validateClass("ObsoleteMethodObserver");<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    assertEquals(1, violations.size());<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>    CoprocessorViolation violation = violations.get(0);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    assertEquals(Severity.WARNING, violation.getSeverity());<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    assertEquals(getFullClassName("ObsoleteMethodObserver"), violation.getClassName());<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    assertTrue(violation.getMessage().contains("was removed from new coprocessor API"));<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>  private List&lt;CoprocessorViolation&gt; validateTable(String jarFile, String className)<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      throws IOException {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    Pattern pattern = Pattern.compile(".*");<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>    Admin admin = mock(Admin.class);<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>    TableDescriptor tableDescriptor = mock(TableDescriptor.class);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    List&lt;TableDescriptor&gt; tableDescriptors = Lists.newArrayList(tableDescriptor);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    doReturn(tableDescriptors).when(admin).listTableDescriptors(pattern);<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>    CoprocessorDescriptor coprocessorDescriptor = mock(CoprocessorDescriptor.class);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    List&lt;CoprocessorDescriptor&gt; coprocessorDescriptors =<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        Lists.newArrayList(coprocessorDescriptor);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    doReturn(coprocessorDescriptors).when(tableDescriptor).getCoprocessorDescriptors();<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>    doReturn(getFullClassName(className)).when(coprocessorDescriptor).getClassName();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    doReturn(Optional.ofNullable(jarFile)).when(coprocessorDescriptor).getJarPath();<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>    List&lt;CoprocessorViolation&gt; violations = new ArrayList&lt;&gt;();<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>    validator.validateTables(getClassLoader(), admin, pattern, violations);<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>    return violations;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  }<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>  @Test<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  public void testTableNoSuchClass() throws IOException {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    List&lt;CoprocessorViolation&gt; violations = validateTable(null, "NoSuchClass");<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    assertEquals(1, violations.size());<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>    CoprocessorViolation violation = violations.get(0);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    assertEquals(getFullClassName("NoSuchClass"), violation.getClassName());<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>    String stackTrace = Throwables.getStackTraceAsString(violation.getThrowable());<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    assertTrue(stackTrace.contains("java.lang.ClassNotFoundException: " +<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$NoSuchClass"));<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>  @Test<a name="line.221"></a>
+<span class="sourceLineNo">222</span>  public void testTableMissingJar() throws IOException {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    List&lt;CoprocessorViolation&gt; violations = validateTable("no such file", "NoSuchClass");<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    assertEquals(1, violations.size());<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>    CoprocessorViolation violation = violations.get(0);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    assertEquals(getFullClassName("NoSuchClass"), violation.getClassName());<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    assertTrue(violation.getMessage().contains("could not validate jar file 'no such file'"));<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>  @Test<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  public void testTableValidJar() throws IOException {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    Path outputDirectory = Paths.get("target", "test-classes");<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    String className = getFullClassName("ObsoleteMethodObserver");<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    Path classFile = Paths.get(className.replace('.', '/') + ".class");<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    Path fullClassFile = outputDirectory.resolve(classFile);<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>    Path tempJarFile = Files.createTempFile("coprocessor-validator-test-", ".jar");<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>    try {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      try (OutputStream fileStream = Files.newOutputStream(tempJarFile);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>          JarOutputStream jarStream = new JarOutputStream(fileStream);<a name="line.243"></a>
+<span class="sourceLineNo">244</span>          InputStream classStream = Files.newInputStream(fullClassFile)) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        ZipEntry entry = new ZipEntry(classFile.toString());<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        jarStream.putNextEntry(entry);<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>        ByteStreams.copy(classStream, jarStream);<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>      String tempJarFileUri = tempJarFile.toUri().toString();<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>      List&lt;CoprocessorViolation&gt; violations =<a name="line.253"></a>
+<span class="sourceLineNo">254</span>          validateTable(tempJarFileUri, "ObsoleteMethodObserver");<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      assertEquals(1, violations.size());<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>      CoprocessorViolation violation = violations.get(0);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      assertEquals(getFullClassName("ObsoleteMethodObserver"), violation.getClassName());<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      assertEquals(Severity.WARNING, violation.getSeverity());<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      assertTrue(violation.getMessage().contains("was removed from new coprocessor API"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    } finally {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      Files.delete(tempJarFile);<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>}<a name="line.265"></a>
 
 
 


[21/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html b/devapidocs/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html
index 2ed7cec..1490418 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.378">MasterRpcServices.BalanceSwitchMode</a>
+<pre>static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html#line.379">MasterRpcServices.BalanceSwitchMode</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/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master">MasterRpcServices.BalanceSwitchMode</a>&gt;</pre>
 </li>
 </ul>
@@ -210,7 +210,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>SYNC</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master">MasterRpcServices.BalanceSwitchMode</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html#line.379">SYNC</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master">MasterRpcServices.BalanceSwitchMode</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html#line.380">SYNC</a></pre>
 </li>
 </ul>
 <a name="ASYNC">
@@ -219,7 +219,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ASYNC</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master">MasterRpcServices.BalanceSwitchMode</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html#line.380">ASYNC</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master">MasterRpcServices.BalanceSwitchMode</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html#line.381">ASYNC</a></pre>
 </li>
 </ul>
 </li>


[23/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html b/devapidocs/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
index 0dc1e1e..b1576f6 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.434">HMaster.RedirectServlet</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.433">HMaster.RedirectServlet</a>
 extends javax.servlet.http.HttpServlet</pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -243,7 +243,7 @@ extends javax.servlet.http.HttpServlet</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>serialVersionUID</h4>
-<pre>private static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html#line.435">serialVersionUID</a></pre>
+<pre>private static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html#line.434">serialVersionUID</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.master.HMaster.RedirectServlet.serialVersionUID">Constant Field Values</a></dd>
@@ -256,7 +256,7 @@ extends javax.servlet.http.HttpServlet</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>regionServerInfoPort</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html#line.436">regionServerInfoPort</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html#line.435">regionServerInfoPort</a></pre>
 </li>
 </ul>
 <a name="regionServerHostname">
@@ -265,7 +265,7 @@ extends javax.servlet.http.HttpServlet</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>regionServerHostname</h4>
-<pre>private 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/master/HMaster.RedirectServlet.html#line.437">regionServerHostname</a></pre>
+<pre>private 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/master/HMaster.RedirectServlet.html#line.436">regionServerHostname</a></pre>
 </li>
 </ul>
 </li>
@@ -282,7 +282,7 @@ extends javax.servlet.http.HttpServlet</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RedirectServlet</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html#line.443">RedirectServlet</a>(<a href="../../../../../org/apache/hadoop/hbase/http/InfoServer.html" title="class in org.apache.hadoop.hbase.http">InfoServer</a>&nbsp;infoServer,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html#line.442">RedirectServlet</a>(<a href="../../../../../org/apache/hadoop/hbase/http/InfoServer.html" title="class in org.apache.hadoop.hbase.http">InfoServer</a>&nbsp;infoServer,
                        <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;hostname)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -305,7 +305,7 @@ extends javax.servlet.http.HttpServlet</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>doGet</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html#line.449">doGet</a>(javax.servlet.http.HttpServletRequest&nbsp;request,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html#line.448">doGet</a>(javax.servlet.http.HttpServletRequest&nbsp;request,
                   javax.servlet.http.HttpServletResponse&nbsp;response)
            throws javax.servlet.ServletException,
                   <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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html b/devapidocs/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
index d43a509..3e0058a 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
@@ -105,7 +105,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>protected static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2271">HMaster.TableDescriptorGetter</a></pre>
+<pre>protected static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2270">HMaster.TableDescriptorGetter</a></pre>
 <div class="block">Implement to return TableDescriptor after pre-checks</div>
 </li>
 </ul>
@@ -150,7 +150,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockListLast">
 <li class="blockList">
 <h4>get</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html#line.2272">get</a>()
+<pre><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html#line.2271">get</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>


[17/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/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 3eda6cc..b511f93 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -533,14 +533,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/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/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/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/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/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/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/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/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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
index bcb1724..c6caa9b 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -191,8 +191,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.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/ServerMetrics.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ServerMetrics.html b/devapidocs/src-html/org/apache/hadoop/hbase/ServerMetrics.html
index bf6f859..1f6ce4c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ServerMetrics.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ServerMetrics.html
@@ -49,62 +49,69 @@
 <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>  /**<a name="line.43"></a>
-<span class="sourceLineNo">044</span>   * @return the number of requests per second.<a name="line.44"></a>
+<span class="sourceLineNo">044</span>   * @return the string type version of a regionserver.<a name="line.44"></a>
 <span class="sourceLineNo">045</span>   */<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  long getRequestCountPerSecond();<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">049</span>   * @return total Number of requests from the start of the region server.<a name="line.49"></a>
-<span class="sourceLineNo">050</span>   */<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  long getRequestCount();<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>   * @return the amount of used heap<a name="line.54"></a>
-<span class="sourceLineNo">055</span>   */<a name="line.55"></a>
-<span class="sourceLineNo">056</span>  Size getUsedHeapSize();<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>   * @return the maximum allowable size of the heap<a name="line.59"></a>
-<span class="sourceLineNo">060</span>   */<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  Size getMaxHeapSize();<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  int getInfoServerPort();<a name="line.63"></a>
+<span class="sourceLineNo">046</span>  default String getVersion() {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    return "0.0.0";<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>  /**<a name="line.50"></a>
+<span class="sourceLineNo">051</span>   * @return the number of requests per second.<a name="line.51"></a>
+<span class="sourceLineNo">052</span>   */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  long getRequestCountPerSecond();<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>   * @return total Number of requests from the start of the region server.<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   */<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  long getRequestCount();<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>   * @return the amount of used heap<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  Size getUsedHeapSize();<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>   * Call directly from client such as hbase shell<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   * @return the list of ReplicationLoadSource<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   */<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  List&lt;ReplicationLoadSource&gt; getReplicationLoadSourceList();<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>   * Call directly from client such as hbase shell<a name="line.72"></a>
-<span class="sourceLineNo">073</span>   * @return ReplicationLoadSink<a name="line.73"></a>
-<span class="sourceLineNo">074</span>   */<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  @Nullable<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  ReplicationLoadSink getReplicationLoadSink();<a name="line.76"></a>
+<span class="sourceLineNo">066</span>   * @return the maximum allowable size of the heap<a name="line.66"></a>
+<span class="sourceLineNo">067</span>   */<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  Size getMaxHeapSize();<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>  int getInfoServerPort();<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>   * Call directly from client such as hbase shell<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   * @return the list of ReplicationLoadSource<a name="line.74"></a>
+<span class="sourceLineNo">075</span>   */<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  List&lt;ReplicationLoadSource&gt; getReplicationLoadSourceList();<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>   * @return region load metrics<a name="line.79"></a>
-<span class="sourceLineNo">080</span>   */<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  Map&lt;byte[], RegionMetrics&gt; getRegionMetrics();<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>   * Return the RegionServer-level and Region-level coprocessors<a name="line.84"></a>
-<span class="sourceLineNo">085</span>   * @return string set of loaded RegionServer-level and Region-level coprocessors<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   */<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  Set&lt;String&gt; getCoprocessorNames();<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>   * @return the timestamp (server side) of generating this metrics<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   */<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  long getReportTimestamp();<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>   * @return the last timestamp (server side) of generating this metrics<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   */<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  long getLastReportTimestamp();<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">079</span>   * Call directly from client such as hbase shell<a name="line.79"></a>
+<span class="sourceLineNo">080</span>   * @return ReplicationLoadSink<a name="line.80"></a>
+<span class="sourceLineNo">081</span>   */<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  @Nullable<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  ReplicationLoadSink getReplicationLoadSink();<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>   * @return region load metrics<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   */<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  Map&lt;byte[], RegionMetrics&gt; getRegionMetrics();<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>   * Return the RegionServer-level and Region-level coprocessors<a name="line.91"></a>
+<span class="sourceLineNo">092</span>   * @return string set of loaded RegionServer-level and Region-level coprocessors<a name="line.92"></a>
+<span class="sourceLineNo">093</span>   */<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  Set&lt;String&gt; getCoprocessorNames();<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>   * @return the timestamp (server side) of generating this metrics<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   */<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  long getReportTimestamp();<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>   * @return the last timestamp (server side) of generating this metrics<a name="line.102"></a>
+<span class="sourceLineNo">103</span>   */<a name="line.103"></a>
+<span class="sourceLineNo">104</span>  long getLastReportTimestamp();<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>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html
index a324787..04f8623 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html
@@ -56,78 +56,78 @@
 <span class="sourceLineNo">048</span>    return newBuilder(sn).build();<a name="line.48"></a>
 <span class="sourceLineNo">049</span>  }<a name="line.49"></a>
 <span class="sourceLineNo">050</span><a name="line.50"></a>
-<span class="sourceLineNo">051</span>  public static ServerMetrics of(ServerName sn, int versionNumber) {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    return newBuilder(sn).setVersionNumber(versionNumber).build();<a name="line.52"></a>
+<span class="sourceLineNo">051</span>  public static ServerMetrics of(ServerName sn, int versionNumber, String version) {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    return newBuilder(sn).setVersionNumber(versionNumber).setVersion(version).build();<a name="line.52"></a>
 <span class="sourceLineNo">053</span>  }<a name="line.53"></a>
 <span class="sourceLineNo">054</span><a name="line.54"></a>
 <span class="sourceLineNo">055</span>  public static ServerMetrics toServerMetrics(ClusterStatusProtos.LiveServerInfo serverInfo) {<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    return toServerMetrics(ProtobufUtil.toServerName(serverInfo.getServer()), 0,<a name="line.56"></a>
-<span class="sourceLineNo">057</span>        serverInfo.getServerLoad());<a name="line.57"></a>
+<span class="sourceLineNo">056</span>    return toServerMetrics(ProtobufUtil.toServerName(serverInfo.getServer()), 0, "0.0.0",<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      serverInfo.getServerLoad());<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>  public static ServerMetrics toServerMetrics(ServerName serverName,<a name="line.60"></a>
 <span class="sourceLineNo">061</span>      ClusterStatusProtos.ServerLoad serverLoadPB) {<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    return toServerMetrics(serverName, 0, serverLoadPB);<a name="line.62"></a>
+<span class="sourceLineNo">062</span>    return toServerMetrics(serverName, 0, "0.0.0", serverLoadPB);<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>  public static ServerMetrics toServerMetrics(ServerName serverName, int versionNumber,<a name="line.65"></a>
-<span class="sourceLineNo">066</span>      ClusterStatusProtos.ServerLoad serverLoadPB) {<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    return ServerMetricsBuilder.newBuilder(serverName).setVersionNumber(versionNumber)<a name="line.67"></a>
-<span class="sourceLineNo">068</span>        .setRequestCountPerSecond(serverLoadPB.getNumberOfRequests())<a name="line.68"></a>
-<span class="sourceLineNo">069</span>        .setRequestCount(serverLoadPB.getTotalNumberOfRequests())<a name="line.69"></a>
-<span class="sourceLineNo">070</span>        .setInfoServerPort(serverLoadPB.getInfoServerPort())<a name="line.70"></a>
-<span class="sourceLineNo">071</span>        .setMaxHeapSize(new Size(serverLoadPB.getMaxHeapMB(), Size.Unit.MEGABYTE))<a name="line.71"></a>
-<span class="sourceLineNo">072</span>        .setUsedHeapSize(new Size(serverLoadPB.getUsedHeapMB(), Size.Unit.MEGABYTE))<a name="line.72"></a>
-<span class="sourceLineNo">073</span>        .setCoprocessorNames(serverLoadPB.getCoprocessorsList().stream()<a name="line.73"></a>
-<span class="sourceLineNo">074</span>            .map(HBaseProtos.Coprocessor::getName).collect(Collectors.toList()))<a name="line.74"></a>
-<span class="sourceLineNo">075</span>        .setRegionMetrics(serverLoadPB.getRegionLoadsList().stream()<a name="line.75"></a>
-<span class="sourceLineNo">076</span>            .map(RegionMetricsBuilder::toRegionMetrics)<a name="line.76"></a>
-<span class="sourceLineNo">077</span>            .collect(Collectors.toList()))<a name="line.77"></a>
-<span class="sourceLineNo">078</span>        .setReplicationLoadSources(serverLoadPB.getReplLoadSourceList().stream()<a name="line.78"></a>
-<span class="sourceLineNo">079</span>            .map(ProtobufUtil::toReplicationLoadSource)<a name="line.79"></a>
-<span class="sourceLineNo">080</span>            .collect(Collectors.toList()))<a name="line.80"></a>
-<span class="sourceLineNo">081</span>        .setReplicationLoadSink(serverLoadPB.hasReplLoadSink() ?<a name="line.81"></a>
-<span class="sourceLineNo">082</span>            ProtobufUtil.toReplicationLoadSink(serverLoadPB.getReplLoadSink()) : null)<a name="line.82"></a>
-<span class="sourceLineNo">083</span>        .setReportTimestamp(serverLoadPB.getReportEndTime())<a name="line.83"></a>
-<span class="sourceLineNo">084</span>        .setLastReportTimestamp(serverLoadPB.getReportStartTime())<a name="line.84"></a>
-<span class="sourceLineNo">085</span>        .build();<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  }<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>  public static List&lt;HBaseProtos.Coprocessor&gt; toCoprocessor(Collection&lt;String&gt; names) {<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    return names.stream()<a name="line.89"></a>
-<span class="sourceLineNo">090</span>        .map(n -&gt; HBaseProtos.Coprocessor.newBuilder().setName(n).build())<a name="line.90"></a>
-<span class="sourceLineNo">091</span>        .collect(Collectors.toList());<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 ClusterStatusProtos.ServerLoad toServerLoad(ServerMetrics metrics) {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    ClusterStatusProtos.ServerLoad.Builder builder = ClusterStatusProtos.ServerLoad.newBuilder()<a name="line.95"></a>
-<span class="sourceLineNo">096</span>        .setNumberOfRequests(metrics.getRequestCountPerSecond())<a name="line.96"></a>
-<span class="sourceLineNo">097</span>        .setTotalNumberOfRequests(metrics.getRequestCount())<a name="line.97"></a>
-<span class="sourceLineNo">098</span>        .setInfoServerPort(metrics.getInfoServerPort())<a name="line.98"></a>
-<span class="sourceLineNo">099</span>        .setMaxHeapMB((int) metrics.getMaxHeapSize().get(Size.Unit.MEGABYTE))<a name="line.99"></a>
-<span class="sourceLineNo">100</span>        .setUsedHeapMB((int) metrics.getUsedHeapSize().get(Size.Unit.MEGABYTE))<a name="line.100"></a>
-<span class="sourceLineNo">101</span>        .addAllCoprocessors(toCoprocessor(metrics.getCoprocessorNames()))<a name="line.101"></a>
-<span class="sourceLineNo">102</span>        .addAllRegionLoads(metrics.getRegionMetrics().values().stream()<a name="line.102"></a>
-<span class="sourceLineNo">103</span>            .map(RegionMetricsBuilder::toRegionLoad)<a name="line.103"></a>
-<span class="sourceLineNo">104</span>            .collect(Collectors.toList()))<a name="line.104"></a>
-<span class="sourceLineNo">105</span>        .addAllReplLoadSource(metrics.getReplicationLoadSourceList().stream()<a name="line.105"></a>
-<span class="sourceLineNo">106</span>            .map(ProtobufUtil::toReplicationLoadSource)<a name="line.106"></a>
-<span class="sourceLineNo">107</span>            .collect(Collectors.toList()))<a name="line.107"></a>
-<span class="sourceLineNo">108</span>        .setReportStartTime(metrics.getLastReportTimestamp())<a name="line.108"></a>
-<span class="sourceLineNo">109</span>        .setReportEndTime(metrics.getReportTimestamp());<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    if (metrics.getReplicationLoadSink() != null) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      builder.setReplLoadSink(ProtobufUtil.toReplicationLoadSink(<a name="line.111"></a>
-<span class="sourceLineNo">112</span>          metrics.getReplicationLoadSink()));<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    }<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    return builder.build();<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>  public static ServerMetricsBuilder newBuilder(ServerName sn) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    return new ServerMetricsBuilder(sn);<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 final ServerName serverName;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  private int versionNumber;<a name="line.122"></a>
+<span class="sourceLineNo">066</span>      String version, ClusterStatusProtos.ServerLoad serverLoadPB) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    return ServerMetricsBuilder.newBuilder(serverName)<a name="line.67"></a>
+<span class="sourceLineNo">068</span>      .setRequestCountPerSecond(serverLoadPB.getNumberOfRequests())<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      .setRequestCount(serverLoadPB.getTotalNumberOfRequests())<a name="line.69"></a>
+<span class="sourceLineNo">070</span>      .setInfoServerPort(serverLoadPB.getInfoServerPort())<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      .setMaxHeapSize(new Size(serverLoadPB.getMaxHeapMB(), Size.Unit.MEGABYTE))<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      .setUsedHeapSize(new Size(serverLoadPB.getUsedHeapMB(), Size.Unit.MEGABYTE))<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      .setCoprocessorNames(serverLoadPB.getCoprocessorsList().stream()<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        .map(HBaseProtos.Coprocessor::getName).collect(Collectors.toList()))<a name="line.74"></a>
+<span class="sourceLineNo">075</span>      .setRegionMetrics(serverLoadPB.getRegionLoadsList().stream()<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        .map(RegionMetricsBuilder::toRegionMetrics).collect(Collectors.toList()))<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      .setReplicationLoadSources(serverLoadPB.getReplLoadSourceList().stream()<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        .map(ProtobufUtil::toReplicationLoadSource).collect(Collectors.toList()))<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      .setReplicationLoadSink(serverLoadPB.hasReplLoadSink()<a name="line.79"></a>
+<span class="sourceLineNo">080</span>        ? ProtobufUtil.toReplicationLoadSink(serverLoadPB.getReplLoadSink())<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        : null)<a name="line.81"></a>
+<span class="sourceLineNo">082</span>      .setReportTimestamp(serverLoadPB.getReportEndTime())<a name="line.82"></a>
+<span class="sourceLineNo">083</span>      .setLastReportTimestamp(serverLoadPB.getReportStartTime()).setVersionNumber(versionNumber)<a name="line.83"></a>
+<span class="sourceLineNo">084</span>      .setVersion(version).build();<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 static List&lt;HBaseProtos.Coprocessor&gt; toCoprocessor(Collection&lt;String&gt; names) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    return names.stream()<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        .map(n -&gt; HBaseProtos.Coprocessor.newBuilder().setName(n).build())<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        .collect(Collectors.toList());<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>  public static ClusterStatusProtos.ServerLoad toServerLoad(ServerMetrics metrics) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    ClusterStatusProtos.ServerLoad.Builder builder = ClusterStatusProtos.ServerLoad.newBuilder()<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        .setNumberOfRequests(metrics.getRequestCountPerSecond())<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        .setTotalNumberOfRequests(metrics.getRequestCount())<a name="line.96"></a>
+<span class="sourceLineNo">097</span>        .setInfoServerPort(metrics.getInfoServerPort())<a name="line.97"></a>
+<span class="sourceLineNo">098</span>        .setMaxHeapMB((int) metrics.getMaxHeapSize().get(Size.Unit.MEGABYTE))<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        .setUsedHeapMB((int) metrics.getUsedHeapSize().get(Size.Unit.MEGABYTE))<a name="line.99"></a>
+<span class="sourceLineNo">100</span>        .addAllCoprocessors(toCoprocessor(metrics.getCoprocessorNames()))<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        .addAllRegionLoads(metrics.getRegionMetrics().values().stream()<a name="line.101"></a>
+<span class="sourceLineNo">102</span>            .map(RegionMetricsBuilder::toRegionLoad)<a name="line.102"></a>
+<span class="sourceLineNo">103</span>            .collect(Collectors.toList()))<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        .addAllReplLoadSource(metrics.getReplicationLoadSourceList().stream()<a name="line.104"></a>
+<span class="sourceLineNo">105</span>            .map(ProtobufUtil::toReplicationLoadSource)<a name="line.105"></a>
+<span class="sourceLineNo">106</span>            .collect(Collectors.toList()))<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        .setReportStartTime(metrics.getLastReportTimestamp())<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        .setReportEndTime(metrics.getReportTimestamp());<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    if (metrics.getReplicationLoadSink() != null) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      builder.setReplLoadSink(ProtobufUtil.toReplicationLoadSink(<a name="line.110"></a>
+<span class="sourceLineNo">111</span>          metrics.getReplicationLoadSink()));<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    return builder.build();<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 ServerMetricsBuilder newBuilder(ServerName sn) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    return new ServerMetricsBuilder(sn);<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  }<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>  private final ServerName serverName;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>  private int versionNumber;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  private String version = "0.0.0";<a name="line.122"></a>
 <span class="sourceLineNo">123</span>  private long requestCountPerSecond;<a name="line.123"></a>
 <span class="sourceLineNo">124</span>  private long requestCount;<a name="line.124"></a>
 <span class="sourceLineNo">125</span>  private Size usedHeapSize = Size.ZERO;<a name="line.125"></a>
@@ -149,246 +149,258 @@
 <span class="sourceLineNo">141</span>    return this;<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>  public ServerMetricsBuilder setRequestCountPerSecond(long value) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    this.requestCountPerSecond = value;<a name="line.145"></a>
+<span class="sourceLineNo">144</span>  public ServerMetricsBuilder setVersion(String version) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    this.version = version;<a name="line.145"></a>
 <span class="sourceLineNo">146</span>    return this;<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>  public ServerMetricsBuilder setRequestCount(long value) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    this.requestCount = value;<a name="line.150"></a>
+<span class="sourceLineNo">149</span>  public ServerMetricsBuilder setRequestCountPerSecond(long value) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    this.requestCountPerSecond = value;<a name="line.150"></a>
 <span class="sourceLineNo">151</span>    return this;<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>  public ServerMetricsBuilder setUsedHeapSize(Size value) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    this.usedHeapSize = value;<a name="line.155"></a>
+<span class="sourceLineNo">154</span>  public ServerMetricsBuilder setRequestCount(long value) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    this.requestCount = value;<a name="line.155"></a>
 <span class="sourceLineNo">156</span>    return this;<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>  public ServerMetricsBuilder setMaxHeapSize(Size value) {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    this.maxHeapSize = value;<a name="line.160"></a>
+<span class="sourceLineNo">159</span>  public ServerMetricsBuilder setUsedHeapSize(Size value) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    this.usedHeapSize = value;<a name="line.160"></a>
 <span class="sourceLineNo">161</span>    return this;<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>  public ServerMetricsBuilder setInfoServerPort(int value) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    this.infoServerPort = value;<a name="line.165"></a>
+<span class="sourceLineNo">164</span>  public ServerMetricsBuilder setMaxHeapSize(Size value) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    this.maxHeapSize = value;<a name="line.165"></a>
 <span class="sourceLineNo">166</span>    return this;<a name="line.166"></a>
 <span class="sourceLineNo">167</span>  }<a name="line.167"></a>
 <span class="sourceLineNo">168</span><a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public ServerMetricsBuilder setReplicationLoadSources(List&lt;ReplicationLoadSource&gt; value) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    this.sources = value;<a name="line.170"></a>
+<span class="sourceLineNo">169</span>  public ServerMetricsBuilder setInfoServerPort(int value) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    this.infoServerPort = value;<a name="line.170"></a>
 <span class="sourceLineNo">171</span>    return this;<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>
-<span class="sourceLineNo">174</span>  public ServerMetricsBuilder setReplicationLoadSink(ReplicationLoadSink value) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    this.sink = value;<a name="line.175"></a>
+<span class="sourceLineNo">174</span>  public ServerMetricsBuilder setReplicationLoadSources(List&lt;ReplicationLoadSource&gt; value) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    this.sources = value;<a name="line.175"></a>
 <span class="sourceLineNo">176</span>    return this;<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">179</span>  public ServerMetricsBuilder setRegionMetrics(List&lt;RegionMetrics&gt; value) {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    value.forEach(v -&gt; this.regionStatus.put(v.getRegionName(), v));<a name="line.180"></a>
+<span class="sourceLineNo">179</span>  public ServerMetricsBuilder setReplicationLoadSink(ReplicationLoadSink value) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    this.sink = value;<a name="line.180"></a>
 <span class="sourceLineNo">181</span>    return this;<a name="line.181"></a>
 <span class="sourceLineNo">182</span>  }<a name="line.182"></a>
 <span class="sourceLineNo">183</span><a name="line.183"></a>
-<span class="sourceLineNo">184</span>  public ServerMetricsBuilder setCoprocessorNames(List&lt;String&gt; value) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    coprocessorNames.addAll(value);<a name="line.185"></a>
+<span class="sourceLineNo">184</span>  public ServerMetricsBuilder setRegionMetrics(List&lt;RegionMetrics&gt; value) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    value.forEach(v -&gt; this.regionStatus.put(v.getRegionName(), v));<a name="line.185"></a>
 <span class="sourceLineNo">186</span>    return this;<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>  public ServerMetricsBuilder setReportTimestamp(long value) {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    this.reportTimestamp = value;<a name="line.190"></a>
+<span class="sourceLineNo">189</span>  public ServerMetricsBuilder setCoprocessorNames(List&lt;String&gt; value) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    coprocessorNames.addAll(value);<a name="line.190"></a>
 <span class="sourceLineNo">191</span>    return this;<a name="line.191"></a>
 <span class="sourceLineNo">192</span>  }<a name="line.192"></a>
 <span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>  public ServerMetricsBuilder setLastReportTimestamp(long value) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    this.lastReportTimestamp = value;<a name="line.195"></a>
+<span class="sourceLineNo">194</span>  public ServerMetricsBuilder setReportTimestamp(long value) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    this.reportTimestamp = value;<a name="line.195"></a>
 <span class="sourceLineNo">196</span>    return this;<a name="line.196"></a>
 <span class="sourceLineNo">197</span>  }<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  public ServerMetrics build() {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    return new ServerMetricsImpl(<a name="line.200"></a>
-<span class="sourceLineNo">201</span>        serverName,<a name="line.201"></a>
-<span class="sourceLineNo">202</span>        versionNumber,<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        requestCountPerSecond,<a name="line.203"></a>
-<span class="sourceLineNo">204</span>        requestCount,<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        usedHeapSize,<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        maxHeapSize,<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        infoServerPort,<a name="line.207"></a>
-<span class="sourceLineNo">208</span>        sources,<a name="line.208"></a>
-<span class="sourceLineNo">209</span>        sink,<a name="line.209"></a>
-<span class="sourceLineNo">210</span>        regionStatus,<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        coprocessorNames,<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        reportTimestamp,<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        lastReportTimestamp);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  }<a name="line.214"></a>
-<span class="sourceLineNo">215</span><a name="line.215"></a>
-<span class="sourceLineNo">216</span>  private static class ServerMetricsImpl implements ServerMetrics {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    private final ServerName serverName;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    private final int versionNumber;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    private final long requestCountPerSecond;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    private final long requestCount;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    private final Size usedHeapSize;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    private final Size maxHeapSize;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    private final int infoServerPort;<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    private final List&lt;ReplicationLoadSource&gt; sources;<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    @Nullable<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private final ReplicationLoadSink sink;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    private final Map&lt;byte[], RegionMetrics&gt; regionStatus;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    private final Set&lt;String&gt; coprocessorNames;<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    private final long reportTimestamp;<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    private final long lastReportTimestamp;<a name="line.230"></a>
-<span class="sourceLineNo">231</span><a name="line.231"></a>
-<span class="sourceLineNo">232</span>    ServerMetricsImpl(ServerName serverName, int versionNumber, long requestCountPerSecond,<a name="line.232"></a>
-<span class="sourceLineNo">233</span>        long requestCount, Size usedHeapSize, Size maxHeapSize, int infoServerPort,<a name="line.233"></a>
-<span class="sourceLineNo">234</span>        List&lt;ReplicationLoadSource&gt; sources, ReplicationLoadSink sink,<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        Map&lt;byte[], RegionMetrics&gt; regionStatus, Set&lt;String&gt; coprocessorNames, long reportTimestamp,<a name="line.235"></a>
-<span class="sourceLineNo">236</span>        long lastReportTimestamp) {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      this.serverName = Preconditions.checkNotNull(serverName);<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      this.versionNumber = versionNumber;<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      this.requestCountPerSecond = requestCountPerSecond;<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      this.requestCount = requestCount;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      this.usedHeapSize = Preconditions.checkNotNull(usedHeapSize);<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      this.maxHeapSize = Preconditions.checkNotNull(maxHeapSize);<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      this.infoServerPort = infoServerPort;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      this.sources = Preconditions.checkNotNull(sources);<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      this.sink = sink;<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      this.regionStatus = Preconditions.checkNotNull(regionStatus);<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      this.coprocessorNames =Preconditions.checkNotNull(coprocessorNames);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      this.reportTimestamp = reportTimestamp;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      this.lastReportTimestamp = lastReportTimestamp;<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>    @Override<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    public ServerName getServerName() {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      return serverName;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    public int getVersionNumber() {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      return versionNumber;<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>    @Override<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    public long getRequestCountPerSecond() {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      return requestCountPerSecond;<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>    @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    public long getRequestCount() {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      return requestCount;<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>    @Override<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    public Size getUsedHeapSize() {<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      return usedHeapSize;<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>    @Override<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    public Size getMaxHeapSize() {<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      return maxHeapSize;<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>    @Override<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    public int getInfoServerPort() {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      return infoServerPort;<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>    @Override<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    public List&lt;ReplicationLoadSource&gt; getReplicationLoadSourceList() {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      return Collections.unmodifiableList(sources);<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>    @Override<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    public ReplicationLoadSink getReplicationLoadSink() {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      return sink;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>    @Override<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    public Map&lt;byte[], RegionMetrics&gt; getRegionMetrics() {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      return Collections.unmodifiableMap(regionStatus);<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    }<a name="line.300"></a>
-<span class="sourceLineNo">301</span><a name="line.301"></a>
-<span class="sourceLineNo">302</span>    @Override<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    public Set&lt;String&gt; getCoprocessorNames() {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      return Collections.unmodifiableSet(coprocessorNames);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>    @Override<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    public long getReportTimestamp() {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      return reportTimestamp;<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>
-<span class="sourceLineNo">312</span>    @Override<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    public long getLastReportTimestamp() {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      return lastReportTimestamp;<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>    @Override<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    public String toString() {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      int storeCount = 0;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>      int storeFileCount = 0;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      long uncompressedStoreFileSizeMB = 0;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      long storeFileSizeMB = 0;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      long memStoreSizeMB = 0;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      long storefileIndexSizeKB = 0;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      long rootLevelIndexSizeKB = 0;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      long readRequestsCount = 0;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      long cpRequestsCount = 0;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      long writeRequestsCount = 0;<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      long filteredReadRequestsCount = 0;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      long bloomFilterSizeMB = 0;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      long compactingCellCount = 0;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      long compactedCellCount = 0;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      for (RegionMetrics r : getRegionMetrics().values()) {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>        storeCount += r.getStoreCount();<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        storeFileCount += r.getStoreFileCount();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>        uncompressedStoreFileSizeMB += r.getUncompressedStoreFileSize().get(Size.Unit.MEGABYTE);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>        storeFileSizeMB += r.getStoreFileSize().get(Size.Unit.MEGABYTE);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>        memStoreSizeMB += r.getMemStoreSize().get(Size.Unit.MEGABYTE);<a name="line.338"></a>
-<span class="sourceLineNo">339</span>        storefileIndexSizeKB += r.getStoreFileUncompressedDataIndexSize().get(Size.Unit.KILOBYTE);<a name="line.339"></a>
-<span class="sourceLineNo">340</span>        readRequestsCount += r.getReadRequestCount();<a name="line.340"></a>
-<span class="sourceLineNo">341</span>        cpRequestsCount += r.getCpRequestCount();<a name="line.341"></a>
-<span class="sourceLineNo">342</span>        writeRequestsCount += r.getWriteRequestCount();<a name="line.342"></a>
-<span class="sourceLineNo">343</span>        filteredReadRequestsCount += r.getFilteredReadRequestCount();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>        rootLevelIndexSizeKB += r.getStoreFileRootLevelIndexSize().get(Size.Unit.KILOBYTE);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>        bloomFilterSizeMB += r.getBloomFilterSize().get(Size.Unit.MEGABYTE);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>        compactedCellCount += r.getCompactedCellCount();<a name="line.346"></a>
-<span class="sourceLineNo">347</span>        compactingCellCount += r.getCompactingCellCount();<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      }<a name="line.348"></a>
-<span class="sourceLineNo">349</span>      StringBuilder sb = Strings.appendKeyValue(new StringBuilder(), "requestsPerSecond",<a name="line.349"></a>
-<span class="sourceLineNo">350</span>            Double.valueOf(getRequestCountPerSecond()));<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      Strings.appendKeyValue(sb, "numberOfOnlineRegions",<a name="line.351"></a>
-<span class="sourceLineNo">352</span>          Integer.valueOf(getRegionMetrics().size()));<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      Strings.appendKeyValue(sb, "usedHeapMB", getUsedHeapSize());<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      Strings.appendKeyValue(sb, "maxHeapMB", getMaxHeapSize());<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      Strings.appendKeyValue(sb, "numberOfStores", storeCount);<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      Strings.appendKeyValue(sb, "numberOfStorefiles", storeFileCount);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      Strings.appendKeyValue(sb, "storefileUncompressedSizeMB", uncompressedStoreFileSizeMB);<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      Strings.appendKeyValue(sb, "storefileSizeMB", storeFileSizeMB);<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      if (uncompressedStoreFileSizeMB != 0) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        Strings.appendKeyValue(sb, "compressionRatio", String.format("%.4f",<a name="line.360"></a>
-<span class="sourceLineNo">361</span>            (float) storeFileSizeMB / (float) uncompressedStoreFileSizeMB));<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      }<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      Strings.appendKeyValue(sb, "memstoreSizeMB", memStoreSizeMB);<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      Strings.appendKeyValue(sb, "readRequestsCount", readRequestsCount);<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      Strings.appendKeyValue(sb, "cpRequestsCount", cpRequestsCount);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      Strings.appendKeyValue(sb, "filteredReadRequestsCount", filteredReadRequestsCount);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      Strings.appendKeyValue(sb, "writeRequestsCount", writeRequestsCount);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      Strings.appendKeyValue(sb, "rootIndexSizeKB", rootLevelIndexSizeKB);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      Strings.appendKeyValue(sb, "totalStaticIndexSizeKB", storefileIndexSizeKB);<a name="line.369"></a>
-<span class="sourceLineNo">370</span>      Strings.appendKeyValue(sb, "totalStaticBloomSizeKB", bloomFilterSizeMB);<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      Strings.appendKeyValue(sb, "totalCompactingKVs", compactingCellCount);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      Strings.appendKeyValue(sb, "currentCompactedKVs", compactedCellCount);<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      float compactionProgressPct = Float.NaN;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      if (compactingCellCount &gt; 0) {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>        compactionProgressPct =<a name="line.375"></a>
-<span class="sourceLineNo">376</span>            Float.valueOf((float) compactedCellCount / compactingCellCount);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      }<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      Strings.appendKeyValue(sb, "compactionProgressPct", compactionProgressPct);<a name="line.378"></a>
-<span class="sourceLineNo">379</span>      Strings.appendKeyValue(sb, "coprocessors", getCoprocessorNames());<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      return sb.toString();<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>}<a name="line.383"></a>
+<span class="sourceLineNo">199</span>  public ServerMetricsBuilder setLastReportTimestamp(long value) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    this.lastReportTimestamp = value;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    return this;<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>  public ServerMetrics build() {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    return new ServerMetricsImpl(<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        serverName,<a name="line.206"></a>
+<span class="sourceLineNo">207</span>        versionNumber,<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        version,<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        requestCountPerSecond,<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        requestCount,<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        usedHeapSize,<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        maxHeapSize,<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        infoServerPort,<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        sources,<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        sink,<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        regionStatus,<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        coprocessorNames,<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        reportTimestamp,<a name="line.218"></a>
+<span class="sourceLineNo">219</span>        lastReportTimestamp);<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 static class ServerMetricsImpl implements ServerMetrics {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    private final ServerName serverName;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    private final int versionNumber;<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    private final String version;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    private final long requestCountPerSecond;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    private final long requestCount;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    private final Size usedHeapSize;<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    private final Size maxHeapSize;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    private final int infoServerPort;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    private final List&lt;ReplicationLoadSource&gt; sources;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    @Nullable<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    private final ReplicationLoadSink sink;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    private final Map&lt;byte[], RegionMetrics&gt; regionStatus;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    private final Set&lt;String&gt; coprocessorNames;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    private final long reportTimestamp;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    private final long lastReportTimestamp;<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>    ServerMetricsImpl(ServerName serverName, int versionNumber, String version,<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        long requestCountPerSecond, long requestCount, Size usedHeapSize, Size maxHeapSize,<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        int infoServerPort, List&lt;ReplicationLoadSource&gt; sources, ReplicationLoadSink sink,<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        Map&lt;byte[], RegionMetrics&gt; regionStatus, Set&lt;String&gt; coprocessorNames, long reportTimestamp,<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        long lastReportTimestamp) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      this.serverName = Preconditions.checkNotNull(serverName);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      this.versionNumber = versionNumber;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      this.version = version;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      this.requestCountPerSecond = requestCountPerSecond;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      this.requestCount = requestCount;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      this.usedHeapSize = Preconditions.checkNotNull(usedHeapSize);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      this.maxHeapSize = Preconditions.checkNotNull(maxHeapSize);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      this.infoServerPort = infoServerPort;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      this.sources = Preconditions.checkNotNull(sources);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      this.sink = sink;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      this.regionStatus = Preconditions.checkNotNull(regionStatus);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      this.coprocessorNames =Preconditions.checkNotNull(coprocessorNames);<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      this.reportTimestamp = reportTimestamp;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      this.lastReportTimestamp = lastReportTimestamp;<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>    @Override<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    public ServerName getServerName() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      return serverName;<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>    @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    public int getVersionNumber() {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      return versionNumber;<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>    public String getVersion() {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      return version;<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>    @Override<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    public long getRequestCountPerSecond() {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      return requestCountPerSecond;<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 long getRequestCount() {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      return requestCount;<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>    public Size getUsedHeapSize() {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      return usedHeapSize;<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>    public Size getMaxHeapSize() {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>      return maxHeapSize;<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>    @Override<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    public int getInfoServerPort() {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      return infoServerPort;<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>    @Override<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    public List&lt;ReplicationLoadSource&gt; getReplicationLoadSourceList() {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      return Collections.unmodifiableList(sources);<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>    @Override<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    public ReplicationLoadSink getReplicationLoadSink() {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      return sink;<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>    @Override<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    public Map&lt;byte[], RegionMetrics&gt; getRegionMetrics() {<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      return Collections.unmodifiableMap(regionStatus);<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>    @Override<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    public Set&lt;String&gt; getCoprocessorNames() {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      return Collections.unmodifiableSet(coprocessorNames);<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">319</span>    @Override<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    public long getReportTimestamp() {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      return reportTimestamp;<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    }<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>    @Override<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    public long getLastReportTimestamp() {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      return lastReportTimestamp;<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>    @Override<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    public String toString() {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      int storeCount = 0;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      int storeFileCount = 0;<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      long uncompressedStoreFileSizeMB = 0;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      long storeFileSizeMB = 0;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      long memStoreSizeMB = 0;<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      long storefileIndexSizeKB = 0;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      long rootLevelIndexSizeKB = 0;<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      long readRequestsCount = 0;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>      long cpRequestsCount = 0;<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      long writeRequestsCount = 0;<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      long filteredReadRequestsCount = 0;<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      long bloomFilterSizeMB = 0;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      long compactingCellCount = 0;<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      long compactedCellCount = 0;<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      for (RegionMetrics r : getRegionMetrics().values()) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>        storeCount += r.getStoreCount();<a name="line.346"></a>
+<span class="sourceLineNo">347</span>        storeFileCount += r.getStoreFileCount();<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        uncompressedStoreFileSizeMB += r.getUncompressedStoreFileSize().get(Size.Unit.MEGABYTE);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>        storeFileSizeMB += r.getStoreFileSize().get(Size.Unit.MEGABYTE);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        memStoreSizeMB += r.getMemStoreSize().get(Size.Unit.MEGABYTE);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        storefileIndexSizeKB += r.getStoreFileUncompressedDataIndexSize().get(Size.Unit.KILOBYTE);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        readRequestsCount += r.getReadRequestCount();<a name="line.352"></a>
+<span class="sourceLineNo">353</span>        cpRequestsCount += r.getCpRequestCount();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        writeRequestsCount += r.getWriteRequestCount();<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        filteredReadRequestsCount += r.getFilteredReadRequestCount();<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        rootLevelIndexSizeKB += r.getStoreFileRootLevelIndexSize().get(Size.Unit.KILOBYTE);<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        bloomFilterSizeMB += r.getBloomFilterSize().get(Size.Unit.MEGABYTE);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>        compactedCellCount += r.getCompactedCellCount();<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        compactingCellCount += r.getCompactingCellCount();<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      StringBuilder sb = Strings.appendKeyValue(new StringBuilder(), "requestsPerSecond",<a name="line.361"></a>
+<span class="sourceLineNo">362</span>            Double.valueOf(getRequestCountPerSecond()));<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      Strings.appendKeyValue(sb, "numberOfOnlineRegions",<a name="line.363"></a>
+<span class="sourceLineNo">364</span>          Integer.valueOf(getRegionMetrics().size()));<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      Strings.appendKeyValue(sb, "usedHeapMB", getUsedHeapSize());<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      Strings.appendKeyValue(sb, "maxHeapMB", getMaxHeapSize());<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      Strings.appendKeyValue(sb, "numberOfStores", storeCount);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      Strings.appendKeyValue(sb, "numberOfStorefiles", storeFileCount);<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      Strings.appendKeyValue(sb, "storefileUncompressedSizeMB", uncompressedStoreFileSizeMB);<a name="line.369"></a>
+<span class="sourceLineNo">370</span>      Strings.appendKeyValue(sb, "storefileSizeMB", storeFileSizeMB);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>      if (uncompressedStoreFileSizeMB != 0) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>        Strings.appendKeyValue(sb, "compressionRatio", String.format("%.4f",<a name="line.372"></a>
+<span class="sourceLineNo">373</span>            (float) storeFileSizeMB / (float) uncompressedStoreFileSizeMB));<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      Strings.appendKeyValue(sb, "memstoreSizeMB", memStoreSizeMB);<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      Strings.appendKeyValue(sb, "readRequestsCount", readRequestsCount);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      Strings.appendKeyValue(sb, "cpRequestsCount", cpRequestsCount);<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      Strings.appendKeyValue(sb, "filteredReadRequestsCount", filteredReadRequestsCount);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      Strings.appendKeyValue(sb, "writeRequestsCount", writeRequestsCount);<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      Strings.appendKeyValue(sb, "rootIndexSizeKB", rootLevelIndexSizeKB);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      Strings.appendKeyValue(sb, "totalStaticIndexSizeKB", storefileIndexSizeKB);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>      Strings.appendKeyValue(sb, "totalStaticBloomSizeKB", bloomFilterSizeMB);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      Strings.appendKeyValue(sb, "totalCompactingKVs", compactingCellCount);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      Strings.appendKeyValue(sb, "currentCompactedKVs", compactedCellCount);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      float compactionProgressPct = Float.NaN;<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      if (compactingCellCount &gt; 0) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        compactionProgressPct =<a name="line.387"></a>
+<span class="sourceLineNo">388</span>            Float.valueOf((float) compactedCellCount / compactingCellCount);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      }<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      Strings.appendKeyValue(sb, "compactionProgressPct", compactionProgressPct);<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      Strings.appendKeyValue(sb, "coprocessors", getCoprocessorNames());<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      return sb.toString();<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>
+<span class="sourceLineNo">395</span>}<a name="line.395"></a>
 
 
 


[19/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/master/RegionServerTracker.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/RegionServerTracker.html b/devapidocs/org/apache/hadoop/hbase/master/RegionServerTracker.html
index 6b8d078..e0e705a 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/RegionServerTracker.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/RegionServerTracker.html
@@ -381,7 +381,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKListener.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html#line.140">stop</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html#line.139">stop</a>()</pre>
 </li>
 </ul>
 <a name="refresh--">
@@ -390,7 +390,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKListener.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>refresh</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html#line.144">refresh</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html#line.143">refresh</a>()</pre>
 </li>
 </ul>
 <a name="nodeChildrenChanged-java.lang.String-">
@@ -399,7 +399,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKListener.htm
 <ul class="blockListLast">
 <li class="blockList">
 <h4>nodeChildrenChanged</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html#line.181">nodeChildrenChanged</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;path)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html#line.180">nodeChildrenChanged</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;path)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKListener.html#nodeChildrenChanged-java.lang.String-">ZKListener</a></code></span></div>
 <div class="block">Called when an existing node has a child node added or removed.</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html b/devapidocs/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html
index fee2f1c..eb1b9a6 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1156">ServerManager.FlushedSequenceIdFlusher</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1164">ServerManager.FlushedSequenceIdFlusher</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a></pre>
 </li>
 </ul>
@@ -201,7 +201,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FlushedSequenceIdFlusher</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html#line.1158">FlushedSequenceIdFlusher</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>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html#line.1166">FlushedSequenceIdFlusher</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,
                                 int&nbsp;p)</pre>
 </li>
 </ul>
@@ -219,7 +219,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>chore</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html#line.1163">chore</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html#line.1171">chore</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html#chore--">ScheduledChore</a></code></span></div>
 <div class="block">The task to execute on each scheduled execution of the Chore</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/master/ServerManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/ServerManager.html b/devapidocs/org/apache/hadoop/hbase/master/ServerManager.html
index d0b6408..2291ea1 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/ServerManager.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/ServerManager.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":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";
@@ -470,143 +470,150 @@ 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/master/ServerManager.html#getRsAdmin-org.apache.hadoop.hbase.ServerName-">getRsAdmin</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
 <tr id="i26" class="altColor">
-<td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#getServerVersion-org.apache.hadoop.hbase.ServerName-">getServerVersion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
-<div class="block">May return 0 when server is not online.</div>
-</td>
-</tr>
-<tr id="i27" class="rowColor">
 <td class="colFirst"><code>private <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/master/ServerManager.html#getStrForMax-int-">getStrForMax</a></span>(int&nbsp;max)</code>&nbsp;</td>
 </tr>
+<tr id="i27" class="rowColor">
+<td class="colFirst"><code><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/master/ServerManager.html#getVersion-org.apache.hadoop.hbase.ServerName-">getVersion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<div class="block">May return "0.0.0" when server is not online</div>
+</td>
+</tr>
 <tr id="i28" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#getVersionNumber-org.apache.hadoop.hbase.ServerName-">getVersionNumber</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<div class="block">May return 0 when server is not online.</div>
+</td>
+</tr>
+<tr id="i29" class="rowColor">
 <td class="colFirst"><code>(package private) boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#isClusterShutdown--">isClusterShutdown</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i29" class="rowColor">
+<tr id="i30" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#isRegionInServerManagerStates-org.apache.hadoop.hbase.client.RegionInfo-">isRegionInServerManagerStates</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri)</code>&nbsp;</td>
 </tr>
-<tr id="i30" class="altColor">
+<tr id="i31" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#isServerDead-org.apache.hadoop.hbase.ServerName-">isServerDead</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block">Check if a server is known to be dead.</div>
 </td>
 </tr>
-<tr id="i31" class="rowColor">
+<tr id="i32" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#isServerOnline-org.apache.hadoop.hbase.ServerName-">isServerOnline</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>&nbsp;</td>
 </tr>
-<tr id="i32" class="altColor">
+<tr id="i33" class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#letRegionServersShutdown--">letRegionServersShutdown</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i33" class="rowColor">
+<tr id="i34" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#loadLastFlushedSequenceIds--">loadLastFlushedSequenceIds</a></span>()</code>
 <div class="block">Load last flushed sequence id of each region from HDFS, if persisted</div>
 </td>
 </tr>
-<tr id="i34" class="altColor">
+<tr id="i35" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#moveFromOnlineToDeadServers-org.apache.hadoop.hbase.ServerName-">moveFromOnlineToDeadServers</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr id="i35" class="rowColor">
+<tr id="i36" class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#newRpcController--">newRpcController</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i36" class="altColor">
+<tr id="i37" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#persistRegionLastFlushedSequenceIds--">persistRegionLastFlushedSequenceIds</a></span>()</code>
 <div class="block">Persist last flushed sequence id of each region to HDFS</div>
 </td>
 </tr>
-<tr id="i37" class="rowColor">
+<tr id="i38" class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#recordNewServerWithLock-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerMetrics-">recordNewServerWithLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                        <a href="../../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a>&nbsp;sl)</code>
 <div class="block">Adds the onlineServers list.</div>
 </td>
 </tr>
-<tr id="i38" class="altColor">
+<tr id="i39" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#regionServerReport-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerMetrics-">regionServerReport</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
                   <a href="../../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a>&nbsp;sl)</code>&nbsp;</td>
 </tr>
-<tr id="i39" class="rowColor">
+<tr id="i40" class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#regionServerStartup-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest-int-java.net.InetAddress-">regionServerStartup</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest&nbsp;request,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#regionServerStartup-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest-int-java.lang.String-java.net.InetAddress-">regionServerStartup</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest&nbsp;request,
                    int&nbsp;versionNumber,
+                   <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;version,
                    <a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;ia)</code>
 <div class="block">Let the server manager know a new regionserver has come online</div>
 </td>
 </tr>
-<tr id="i40" class="altColor">
+<tr id="i41" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#registerListener-org.apache.hadoop.hbase.master.ServerListener-">registerListener</a></span>(<a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html" title="interface in org.apache.hadoop.hbase.master">ServerListener</a>&nbsp;listener)</code>
 <div class="block">Add the listener to the notification list.</div>
 </td>
 </tr>
-<tr id="i41" class="rowColor">
+<tr id="i42" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#removeDeletedRegionFromLoadedFlushedSequenceIds--">removeDeletedRegionFromLoadedFlushedSequenceIds</a></span>()</code>
 <div class="block">Regions may have been removed between latest persist of FlushedSequenceIds
  and master abort.</div>
 </td>
 </tr>
-<tr id="i42" class="altColor">
+<tr id="i43" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#removeRegion-org.apache.hadoop.hbase.client.RegionInfo-">removeRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</code>
 <div class="block">Called by delete table and similar to notify the ServerManager that a region was removed.</div>
 </td>
 </tr>
-<tr id="i43" class="rowColor">
+<tr id="i44" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#removeRegions-java.util.List-">removeRegions</a></span>(<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/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regions)</code>
 <div class="block">Called by delete table and similar to notify the ServerManager that a region was removed.</div>
 </td>
 </tr>
-<tr id="i44" class="altColor">
+<tr id="i45" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#removeServerFromDrainList-org.apache.hadoop.hbase.ServerName-">removeServerFromDrainList</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr id="i45" class="rowColor">
+<tr id="i46" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#sendRegionWarmup-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.client.RegionInfo-">sendRegionWarmup</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
                 <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region)</code>
 <div class="block">Sends a WARMUP RPC to the specified server to warmup the specified region.</div>
 </td>
 </tr>
-<tr id="i46" class="altColor">
+<tr id="i47" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#shutdownCluster--">shutdownCluster</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i47" class="rowColor">
+<tr id="i48" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#startChore--">startChore</a></span>()</code>
 <div class="block">start chore in ServerManager</div>
 </td>
 </tr>
-<tr id="i48" class="altColor">
+<tr id="i49" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#stop--">stop</a></span>()</code>
 <div class="block">Stop the ServerManager.</div>
 </td>
 </tr>
-<tr id="i49" class="rowColor">
+<tr id="i50" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#unregisterListener-org.apache.hadoop.hbase.master.ServerListener-">unregisterListener</a></span>(<a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html" title="interface in org.apache.hadoop.hbase.master">ServerListener</a>&nbsp;listener)</code>
 <div class="block">Remove the listener from the notification list.</div>
 </td>
 </tr>
-<tr id="i50" class="altColor">
+<tr id="i51" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#updateLastFlushedSequenceIds-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerMetrics-">updateLastFlushedSequenceIds</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
                             <a href="../../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a>&nbsp;hsl)</code>
 <div class="block">Updates last flushed sequence Ids for the regions on server sn</div>
 </td>
 </tr>
-<tr id="i51" class="rowColor">
+<tr id="i52" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#waitForRegionServers-org.apache.hadoop.hbase.monitoring.MonitoredTask-">waitForRegionServers</a></span>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)</code>
 <div class="block">Wait for the region servers to report in.</div>
@@ -969,21 +976,23 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
-<a name="regionServerStartup-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest-int-java.net.InetAddress-">
+<a name="regionServerStartup-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest-int-java.lang.String-java.net.InetAddress-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>regionServerStartup</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.222">regionServerStartup</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest&nbsp;request,
+<pre><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.223">regionServerStartup</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest&nbsp;request,
                                int&nbsp;versionNumber,
+                               <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;version,
                                <a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;ia)
                         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">Let the server manager know a new regionserver has come online</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>request</code> - the startup request</dd>
-<dd><code>versionNumber</code> - the version of the new regionserver</dd>
+<dd><code>versionNumber</code> - the version number of the new regionserver</dd>
+<dd><code>version</code> - the version of the new regionserver, could contain strings like "SNAPSHOT"</dd>
 <dd><code>ia</code> - the InetAddress from which request is received</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The ServerName we know this server as.</dd>
@@ -1587,23 +1596,33 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="block">Called by delete table and similar to notify the ServerManager that a region was removed.</div>
 </li>
 </ul>
-<a name="getServerVersion-org.apache.hadoop.hbase.ServerName-">
+<a name="getVersionNumber-org.apache.hadoop.hbase.ServerName-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getServerVersion</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1024">getServerVersion</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
+<h4>getVersionNumber</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1024">getVersionNumber</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 <div class="block">May return 0 when server is not online.</div>
 </li>
 </ul>
+<a name="getVersion-org.apache.hadoop.hbase.ServerName-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getVersion</h4>
+<pre>public&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/master/ServerManager.html#line.1032">getVersion</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
+<div class="block">May return "0.0.0" when server is not online</div>
+</li>
+</ul>
 <a name="getInfoPort-org.apache.hadoop.hbase.ServerName-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getInfoPort</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1029">getInfoPort</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1037">getInfoPort</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 </li>
 </ul>
 <a name="persistRegionLastFlushedSequenceIds--">
@@ -1612,7 +1631,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>persistRegionLastFlushedSequenceIds</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1038">persistRegionLastFlushedSequenceIds</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1046">persistRegionLastFlushedSequenceIds</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>
 <div class="block">Persist last flushed sequence id of each region to HDFS</div>
 <dl>
@@ -1627,7 +1646,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>loadLastFlushedSequenceIds</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1095">loadLastFlushedSequenceIds</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1103">loadLastFlushedSequenceIds</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>
 <div class="block">Load last flushed sequence id of each region from HDFS, if persisted</div>
 <dl>
@@ -1642,7 +1661,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>removeDeletedRegionFromLoadedFlushedSequenceIds</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1144">removeDeletedRegionFromLoadedFlushedSequenceIds</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ServerManager.html#line.1152">removeDeletedRegionFromLoadedFlushedSequenceIds</a>()</pre>
 <div class="block">Regions may have been removed between latest persist of FlushedSequenceIds
  and master abort. So after loading FlushedSequenceIds from file, and after
  meta loaded, we need to remove the deleted region according to RegionStates.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/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 13c7ae9..c196d37 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -348,11 +348,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.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/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/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/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/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/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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/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 7a808ff..44286ce 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -217,9 +217,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.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/MetaProcedureInterface.MetaOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">MetaProcedureInterface.MetaOperationType</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/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/MetaProcedureInterface.MetaOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">MetaProcedureInterface.MetaOperationType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html b/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
index 4b549da..7b435d2 100644
--- a/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
@@ -127,8 +127,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.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.TaskFilter.TaskType.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">TaskMonitor.TaskFilter.TaskType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.State.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">MonitoredTask.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.TaskFilter.TaskType.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">TaskMonitor.TaskFilter.TaskType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/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 3d6d0fa..6086ddb 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -437,19 +437,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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/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 42fb00b..bee16c9 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -219,9 +219,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/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/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/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/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/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/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/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/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 bddad32..668b898 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -229,13 +229,13 @@
 <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/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/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/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/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</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/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/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/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/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/dbe3a233/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 7ab6815..482efa8 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -704,18 +704,18 @@
 <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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/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 3bd22b5..858ccf6 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/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/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/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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
index feee307..e8df157 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
@@ -247,9 +247,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.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/CompressionContext.DictionaryIndex.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">CompressionContext.DictionaryIndex</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">RingBufferTruck.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.WALHdrResult.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">ProtobufLogReader.WALHdrResult</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/CompressionContext.DictionaryIndex.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">CompressionContext.DictionaryIndex</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/replication/class-use/ReplicationLoadSink.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/class-use/ReplicationLoadSink.html b/devapidocs/org/apache/hadoop/hbase/replication/class-use/ReplicationLoadSink.html
index 2f04ceb..712a45a 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/class-use/ReplicationLoadSink.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/class-use/ReplicationLoadSink.html
@@ -158,8 +158,9 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#ServerMetricsImpl-org.apache.hadoop.hbase.ServerName-int-long-long-org.apache.hadoop.hbase.Size-org.apache.hadoop.hbase.Size-int-java.util.List-org.apache.hadoop.hbase.replication.ReplicationLoadSink-java.util.Map-java.util.Set-long-long-">ServerMetricsImpl</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#ServerMetricsImpl-org.apache.hadoop.hbase.ServerName-int-java.lang.String-long-long-org.apache.hadoop.hbase.Size-org.apache.hadoop.hbase.Size-int-java.util.List-org.apache.hadoop.hbase.replication.ReplicationLoadSink-java.util.Map-java.util.Set-long-long-">ServerMetricsImpl</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                  int&nbsp;versionNumber,
+                 <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;version,
                  long&nbsp;requestCountPerSecond,
                  long&nbsp;requestCount,
                  <a href="../../../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;usedHeapSize,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/replication/class-use/ReplicationLoadSource.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/class-use/ReplicationLoadSource.html b/devapidocs/org/apache/hadoop/hbase/replication/class-use/ReplicationLoadSource.html
index 8f1fe91..bb5e33e 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/class-use/ReplicationLoadSource.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/class-use/ReplicationLoadSource.html
@@ -162,8 +162,9 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#ServerMetricsImpl-org.apache.hadoop.hbase.ServerName-int-long-long-org.apache.hadoop.hbase.Size-org.apache.hadoop.hbase.Size-int-java.util.List-org.apache.hadoop.hbase.replication.ReplicationLoadSink-java.util.Map-java.util.Set-long-long-">ServerMetricsImpl</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#ServerMetricsImpl-org.apache.hadoop.hbase.ServerName-int-java.lang.String-long-long-org.apache.hadoop.hbase.Size-org.apache.hadoop.hbase.Size-int-java.util.List-org.apache.hadoop.hbase.replication.ReplicationLoadSink-java.util.Map-java.util.Set-long-long-">ServerMetricsImpl</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                  int&nbsp;versionNumber,
+                 <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;version,
                  long&nbsp;requestCountPerSecond,
                  long&nbsp;requestCount,
                  <a href="../../../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;usedHeapSize,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
index 30c4e73..cd3870f 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
@@ -207,8 +207,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.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.SourceHolder.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsReplicationSourceFactoryImpl.SourceHolder</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.SourceHolder.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsReplicationSourceFactoryImpl.SourceHolder</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
index c20ff47..034077c 100644
--- a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
@@ -110,8 +110,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.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.FilterType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.FilterType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.FilterType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.FilterType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
index dfa02b5..29d7634 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
@@ -192,8 +192,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.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/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 03e1383..2cef8bd 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
@@ -199,9 +199,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/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>
+<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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html b/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html
index 0bf9a9b..188f439 100644
--- a/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html
+++ b/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html
@@ -132,7 +132,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.73">CoprocessorValidator.ResolverUrlClassLoader</a>
+<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.90">CoprocessorValidator.ResolverUrlClassLoader</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URLClassLoader.html?is-external=true" title="class or interface in java.net">URLClassLoader</a></pre>
 <div class="block">This classloader implementation calls <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true#resolveClass-java.lang.Class-" title="class or interface in java.lang"><code>ClassLoader.resolveClass(Class)</code></a>
  method for every loaded class. It means that some extra validation will
@@ -159,7 +159,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URLClassLoad
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private </code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html#ResolverUrlClassLoader-java.net.URL:A-">ResolverUrlClassLoader</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>[]&nbsp;urls)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html#ResolverUrlClassLoader-java.net.URL:A-java.lang.ClassLoader-">ResolverUrlClassLoader</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>[]&nbsp;urls,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;parent)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -223,13 +224,14 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URLClassLoad
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="ResolverUrlClassLoader-java.net.URL:A-">
+<a name="ResolverUrlClassLoader-java.net.URL:A-java.lang.ClassLoader-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ResolverUrlClassLoader</h4>
-<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html#line.74">ResolverUrlClassLoader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>[]&nbsp;urls)</pre>
+<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html#line.91">ResolverUrlClassLoader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>[]&nbsp;urls,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;parent)</pre>
 </li>
 </ul>
 </li>
@@ -246,7 +248,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URLClassLoad
 <ul class="blockListLast">
 <li class="blockList">
 <h4>loadClass</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html#line.79">loadClass</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>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html#line.96">loadClass</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)
                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>


[02/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html
index 7896c2f..9597ff9 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html
@@ -28,161 +28,249 @@
 <span class="sourceLineNo">020</span><a name="line.20"></a>
 <span class="sourceLineNo">021</span>import static org.junit.Assert.assertEquals;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import static org.junit.Assert.assertTrue;<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 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.Coprocessor;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.CoprocessorEnvironment;<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.HRegionInfo;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.junit.ClassRule;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.junit.Test;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.junit.experimental.categories.Category;<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>@Category({ SmallTests.class })<a name="line.42"></a>
-<span class="sourceLineNo">043</span>@SuppressWarnings("deprecation")<a name="line.43"></a>
-<span class="sourceLineNo">044</span>public class CoprocessorValidatorTest {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  @ClassRule<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.46"></a>
-<span class="sourceLineNo">047</span>      HBaseClassTestRule.forClass(CoprocessorValidatorTest.class);<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>  private CoprocessorValidator validator;<a name="line.49"></a>
-<span class="sourceLineNo">050</span><a name="line.50"></a>
-<span class="sourceLineNo">051</span>  public CoprocessorValidatorTest() {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    validator = new CoprocessorValidator();<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  }<a name="line.53"></a>
-<span class="sourceLineNo">054</span><a name="line.54"></a>
-<span class="sourceLineNo">055</span>  private static ClassLoader getClassLoader() {<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    return CoprocessorValidatorTest.class.getClassLoader();<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 String getFullClassName(String className) {<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    return CoprocessorValidatorTest.class.getName() + "$" + className;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  }<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  @SuppressWarnings({"rawtypes", "unused"})<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  private static class TestObserver implements Coprocessor {<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    @Override<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    public void start(CoprocessorEnvironment env) throws IOException {<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>    @Override<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    public void stop(CoprocessorEnvironment env) throws IOException {<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><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  @Test<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  public void testFilterObservers() throws Exception {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    String filterObservers = getFullClassName("TestObserver");<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    List&lt;String&gt; classNames = Lists.newArrayList(<a name="line.77"></a>
-<span class="sourceLineNo">078</span>        filterObservers, getClass().getName());<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    List&lt;String&gt; filteredClassNames = validator.filterObservers(getClassLoader(), classNames);<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span>    assertEquals(1, filteredClassNames.size());<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    assertEquals(filterObservers, filteredClassNames.get(0));<a name="line.82"></a>
+<span class="sourceLineNo">023</span>import static org.mockito.Mockito.doReturn;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import static org.mockito.Mockito.mock;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.io.IOException;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.io.InputStream;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.io.OutputStream;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.nio.file.Files;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.nio.file.Path;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.nio.file.Paths;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.util.ArrayList;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.List;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Optional;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.jar.JarOutputStream;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.regex.Pattern;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.zip.ZipEntry;<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HRegionInfo;<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.client.Admin;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.client.CoprocessorDescriptor;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.junit.ClassRule;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.junit.Test;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.junit.experimental.categories.Category;<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hbase.thirdparty.com.google.common.io.ByteStreams;<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>@Category({ SmallTests.class })<a name="line.58"></a>
+<span class="sourceLineNo">059</span>@SuppressWarnings("deprecation")<a name="line.59"></a>
+<span class="sourceLineNo">060</span>public class CoprocessorValidatorTest {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  @ClassRule<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      HBaseClassTestRule.forClass(CoprocessorValidatorTest.class);<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>  private CoprocessorValidator validator;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  public CoprocessorValidatorTest() {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    validator = new CoprocessorValidator();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    validator.setConf(HBaseConfiguration.create());<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>  private static ClassLoader getClassLoader() {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    return CoprocessorValidatorTest.class.getClassLoader();<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>  private static String getFullClassName(String className) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    return CoprocessorValidatorTest.class.getName() + "$" + className;<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>  private List&lt;CoprocessorViolation&gt; validateClass(String className) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    ClassLoader classLoader = getClass().getClassLoader();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    return validateClass(classLoader, className);<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>  private List&lt;CoprocessorViolation&gt; validate(String className) {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    ClassLoader classLoader = getClass().getClassLoader();<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    return validate(classLoader, className);<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>  private List&lt;CoprocessorViolation&gt; validate(ClassLoader classLoader, String className) {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    List&lt;String&gt; classNames = Lists.newArrayList(getClass().getName() + "$" + className);<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    return validator.validate(classLoader, classNames);<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>  /*<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * In this test case, we are try to load a not-existent class.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  @Test<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  public void testNoSuchClass() throws IOException {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    List&lt;CoprocessorViolation&gt; violations = validate("NoSuchClass");<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    assertEquals(1, violations.size());<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>    CoprocessorViolation violation = violations.get(0);<a name="line.103"></a>
+<span class="sourceLineNo">085</span>  private List&lt;CoprocessorViolation&gt; validateClass(ClassLoader classLoader, String className) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    List&lt;String&gt; classNames = Lists.newArrayList(getFullClassName(className));<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    List&lt;CoprocessorViolation&gt; violations = new ArrayList&lt;&gt;();<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>    validator.validateClasses(classLoader, classNames, violations);<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>    return violations;<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>   * In this test case, we are try to load a not-existent class.<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 testNoSuchClass() throws IOException {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    List&lt;CoprocessorViolation&gt; violations = validateClass("NoSuchClass");<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    assertEquals(1, violations.size());<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>    CoprocessorViolation violation = violations.get(0);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    assertEquals(getFullClassName("NoSuchClass"), violation.getClassName());<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    assertTrue(violation.getMessage().contains(<a name="line.105"></a>
-<span class="sourceLineNo">106</span>        "java.lang.ClassNotFoundException: " +<a name="line.106"></a>
-<span class="sourceLineNo">107</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$NoSuchClass"));<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>   * In this test case, we are validating MissingClass coprocessor, which<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   * references a missing class. With a special classloader, we prevent that<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * class to be loaded at runtime. It simulates similar cases where a class<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   * is no more on our classpath.<a name="line.114"></a>
-<span class="sourceLineNo">115</span>   * E.g. org.apache.hadoop.hbase.regionserver.wal.WALEdit was moved to<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   * org.apache.hadoop.hbase.wal, so class loading will fail on 2.0.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   */<a name="line.117"></a>
-<span class="sourceLineNo">118</span>  private static class MissingClass {<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>  @SuppressWarnings("unused")<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  private static class MissingClassObserver {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    public void method(MissingClass missingClass) {<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>  private static class MissingClassClassLoader extends ClassLoader {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    public MissingClassClassLoader() {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      super(getClassLoader());<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>    @Override<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    public Class&lt;?&gt; loadClass(String name) throws ClassNotFoundException {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      if (name.equals(getFullClassName("MissingClass"))) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>        throw new ClassNotFoundException(name);<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>      return super.findClass(name);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    }<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>  @Test<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  public void testMissingClass() throws IOException {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    MissingClassClassLoader missingClassClassLoader = new MissingClassClassLoader();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    List&lt;CoprocessorViolation&gt; violations = validate(missingClassClassLoader,<a name="line.145"></a>
-<span class="sourceLineNo">146</span>        "MissingClassObserver");<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    assertEquals(1, violations.size());<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>    CoprocessorViolation violation = violations.get(0);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    assertTrue(violation.getMessage().contains(<a name="line.151"></a>
-<span class="sourceLineNo">152</span>        "java.lang.ClassNotFoundException: " +<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$MissingClass"));<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>   * ObsoleteMethod coprocessor implements preCreateTable method which has<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   * HRegionInfo parameters. In our current implementation, we pass only<a name="line.158"></a>
-<span class="sourceLineNo">159</span>   * RegionInfo parameters, so this method won't be called by HBase at all.<a name="line.159"></a>
-<span class="sourceLineNo">160</span>   */<a name="line.160"></a>
-<span class="sourceLineNo">161</span>  @SuppressWarnings("unused")<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  private static class ObsoleteMethodObserver /* implements MasterObserver */ {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    public void preCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        HTableDescriptor desc, HRegionInfo[] regions) throws IOException {<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>  @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public void testObsoleteMethod() throws IOException {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    List&lt;CoprocessorViolation&gt; violations = validate("ObsoleteMethodObserver");<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    assertEquals(1, violations.size());<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>    CoprocessorViolation violation = violations.get(0);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    assertEquals(Severity.WARNING, violation.getSeverity());<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    assertTrue(violation.getMessage().contains("was removed from new coprocessor API"));<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">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>    String stackTrace = Throwables.getStackTraceAsString(violation.getThrowable());<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    assertTrue(stackTrace.contains("java.lang.ClassNotFoundException: " +<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$NoSuchClass"));<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>  /*<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   * In this test case, we are validating MissingClass coprocessor, which<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   * references a missing class. With a special classloader, we prevent that<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   * class to be loaded at runtime. It simulates similar cases where a class<a name="line.114"></a>
+<span class="sourceLineNo">115</span>   * is no more on our classpath.<a name="line.115"></a>
+<span class="sourceLineNo">116</span>   * E.g. org.apache.hadoop.hbase.regionserver.wal.WALEdit was moved to<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   * org.apache.hadoop.hbase.wal, so class loading will fail on 2.0.<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   */<a name="line.118"></a>
+<span class="sourceLineNo">119</span>  private static class MissingClass {<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>  @SuppressWarnings("unused")<a name="line.122"></a>
+<span class="sourceLineNo">123</span>  private static class MissingClassObserver {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public void method(MissingClass missingClass) {<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>  private static class MissingClassClassLoader extends ClassLoader {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    public MissingClassClassLoader() {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      super(getClassLoader());<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>    @Override<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    public Class&lt;?&gt; loadClass(String name) throws ClassNotFoundException {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      if (name.equals(getFullClassName("MissingClass"))) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        throw new ClassNotFoundException(name);<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>      return super.findClass(name);<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>  @Test<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  public void testMissingClass() throws IOException {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    MissingClassClassLoader missingClassClassLoader = new MissingClassClassLoader();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    List&lt;CoprocessorViolation&gt; violations = validateClass(missingClassClassLoader,<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        "MissingClassObserver");<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    assertEquals(1, violations.size());<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    CoprocessorViolation violation = violations.get(0);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    assertEquals(getFullClassName("MissingClassObserver"), violation.getClassName());<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>    String stackTrace = Throwables.getStackTraceAsString(violation.getThrowable());<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    assertTrue(stackTrace.contains("java.lang.ClassNotFoundException: " +<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$MissingClass"));<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>   * ObsoleteMethod coprocessor implements preCreateTable method which has<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   * HRegionInfo parameters. In our current implementation, we pass only<a name="line.161"></a>
+<span class="sourceLineNo">162</span>   * RegionInfo parameters, so this method won't be called by HBase at all.<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  @SuppressWarnings("unused")<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  private static class ObsoleteMethodObserver /* implements MasterObserver */ {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    public void preCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        HTableDescriptor desc, HRegionInfo[] regions) throws IOException {<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>  @Test<a name="line.171"></a>
+<span class="sourceLineNo">172</span>  public void testObsoleteMethod() throws IOException {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    List&lt;CoprocessorViolation&gt; violations = validateClass("ObsoleteMethodObserver");<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    assertEquals(1, violations.size());<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>    CoprocessorViolation violation = violations.get(0);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    assertEquals(Severity.WARNING, violation.getSeverity());<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    assertEquals(getFullClassName("ObsoleteMethodObserver"), violation.getClassName());<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    assertTrue(violation.getMessage().contains("was removed from new coprocessor API"));<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>  private List&lt;CoprocessorViolation&gt; validateTable(String jarFile, String className)<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      throws IOException {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    Pattern pattern = Pattern.compile(".*");<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>    Admin admin = mock(Admin.class);<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>    TableDescriptor tableDescriptor = mock(TableDescriptor.class);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    List&lt;TableDescriptor&gt; tableDescriptors = Lists.newArrayList(tableDescriptor);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    doReturn(tableDescriptors).when(admin).listTableDescriptors(pattern);<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>    CoprocessorDescriptor coprocessorDescriptor = mock(CoprocessorDescriptor.class);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    List&lt;CoprocessorDescriptor&gt; coprocessorDescriptors =<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        Lists.newArrayList(coprocessorDescriptor);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    doReturn(coprocessorDescriptors).when(tableDescriptor).getCoprocessorDescriptors();<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>    doReturn(getFullClassName(className)).when(coprocessorDescriptor).getClassName();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    doReturn(Optional.ofNullable(jarFile)).when(coprocessorDescriptor).getJarPath();<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>    List&lt;CoprocessorViolation&gt; violations = new ArrayList&lt;&gt;();<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>    validator.validateTables(getClassLoader(), admin, pattern, violations);<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>    return violations;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  }<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>  @Test<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  public void testTableNoSuchClass() throws IOException {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    List&lt;CoprocessorViolation&gt; violations = validateTable(null, "NoSuchClass");<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    assertEquals(1, violations.size());<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>    CoprocessorViolation violation = violations.get(0);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    assertEquals(getFullClassName("NoSuchClass"), violation.getClassName());<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>    String stackTrace = Throwables.getStackTraceAsString(violation.getThrowable());<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    assertTrue(stackTrace.contains("java.lang.ClassNotFoundException: " +<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$NoSuchClass"));<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>  @Test<a name="line.221"></a>
+<span class="sourceLineNo">222</span>  public void testTableMissingJar() throws IOException {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    List&lt;CoprocessorViolation&gt; violations = validateTable("no such file", "NoSuchClass");<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    assertEquals(1, violations.size());<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>    CoprocessorViolation violation = violations.get(0);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    assertEquals(getFullClassName("NoSuchClass"), violation.getClassName());<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    assertTrue(violation.getMessage().contains("could not validate jar file 'no such file'"));<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>  @Test<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  public void testTableValidJar() throws IOException {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    Path outputDirectory = Paths.get("target", "test-classes");<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    String className = getFullClassName("ObsoleteMethodObserver");<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    Path classFile = Paths.get(className.replace('.', '/') + ".class");<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    Path fullClassFile = outputDirectory.resolve(classFile);<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>    Path tempJarFile = Files.createTempFile("coprocessor-validator-test-", ".jar");<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>    try {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      try (OutputStream fileStream = Files.newOutputStream(tempJarFile);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>          JarOutputStream jarStream = new JarOutputStream(fileStream);<a name="line.243"></a>
+<span class="sourceLineNo">244</span>          InputStream classStream = Files.newInputStream(fullClassFile)) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        ZipEntry entry = new ZipEntry(classFile.toString());<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        jarStream.putNextEntry(entry);<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>        ByteStreams.copy(classStream, jarStream);<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>      String tempJarFileUri = tempJarFile.toUri().toString();<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>      List&lt;CoprocessorViolation&gt; violations =<a name="line.253"></a>
+<span class="sourceLineNo">254</span>          validateTable(tempJarFileUri, "ObsoleteMethodObserver");<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      assertEquals(1, violations.size());<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>      CoprocessorViolation violation = violations.get(0);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      assertEquals(getFullClassName("ObsoleteMethodObserver"), violation.getClassName());<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      assertEquals(Severity.WARNING, violation.getSeverity());<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      assertTrue(violation.getMessage().contains("was removed from new coprocessor API"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    } finally {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      Files.delete(tempJarFile);<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>}<a name="line.265"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html
deleted file mode 100644
index 7896c2f..0000000
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html
+++ /dev/null
@@ -1,249 +0,0 @@
-<!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.tool.coprocessor;<a name="line.19"></a>
-<span class="sourceLineNo">020</span><a name="line.20"></a>
-<span class="sourceLineNo">021</span>import static org.junit.Assert.assertEquals;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import static org.junit.Assert.assertTrue;<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 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.Coprocessor;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.CoprocessorEnvironment;<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.HRegionInfo;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.junit.ClassRule;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.junit.Test;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.junit.experimental.categories.Category;<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>@Category({ SmallTests.class })<a name="line.42"></a>
-<span class="sourceLineNo">043</span>@SuppressWarnings("deprecation")<a name="line.43"></a>
-<span class="sourceLineNo">044</span>public class CoprocessorValidatorTest {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  @ClassRule<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.46"></a>
-<span class="sourceLineNo">047</span>      HBaseClassTestRule.forClass(CoprocessorValidatorTest.class);<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>  private CoprocessorValidator validator;<a name="line.49"></a>
-<span class="sourceLineNo">050</span><a name="line.50"></a>
-<span class="sourceLineNo">051</span>  public CoprocessorValidatorTest() {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    validator = new CoprocessorValidator();<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  }<a name="line.53"></a>
-<span class="sourceLineNo">054</span><a name="line.54"></a>
-<span class="sourceLineNo">055</span>  private static ClassLoader getClassLoader() {<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    return CoprocessorValidatorTest.class.getClassLoader();<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 String getFullClassName(String className) {<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    return CoprocessorValidatorTest.class.getName() + "$" + className;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  }<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  @SuppressWarnings({"rawtypes", "unused"})<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  private static class TestObserver implements Coprocessor {<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    @Override<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    public void start(CoprocessorEnvironment env) throws IOException {<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>    @Override<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    public void stop(CoprocessorEnvironment env) throws IOException {<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><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  @Test<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  public void testFilterObservers() throws Exception {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    String filterObservers = getFullClassName("TestObserver");<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    List&lt;String&gt; classNames = Lists.newArrayList(<a name="line.77"></a>
-<span class="sourceLineNo">078</span>        filterObservers, getClass().getName());<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    List&lt;String&gt; filteredClassNames = validator.filterObservers(getClassLoader(), classNames);<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span>    assertEquals(1, filteredClassNames.size());<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    assertEquals(filterObservers, filteredClassNames.get(0));<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>  private List&lt;CoprocessorViolation&gt; validate(String className) {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    ClassLoader classLoader = getClass().getClassLoader();<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    return validate(classLoader, className);<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>  private List&lt;CoprocessorViolation&gt; validate(ClassLoader classLoader, String className) {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    List&lt;String&gt; classNames = Lists.newArrayList(getClass().getName() + "$" + className);<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    return validator.validate(classLoader, classNames);<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>  /*<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * In this test case, we are try to load a not-existent class.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  @Test<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  public void testNoSuchClass() throws IOException {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    List&lt;CoprocessorViolation&gt; violations = validate("NoSuchClass");<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    assertEquals(1, violations.size());<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>    CoprocessorViolation violation = violations.get(0);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    assertTrue(violation.getMessage().contains(<a name="line.105"></a>
-<span class="sourceLineNo">106</span>        "java.lang.ClassNotFoundException: " +<a name="line.106"></a>
-<span class="sourceLineNo">107</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$NoSuchClass"));<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>   * In this test case, we are validating MissingClass coprocessor, which<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   * references a missing class. With a special classloader, we prevent that<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * class to be loaded at runtime. It simulates similar cases where a class<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   * is no more on our classpath.<a name="line.114"></a>
-<span class="sourceLineNo">115</span>   * E.g. org.apache.hadoop.hbase.regionserver.wal.WALEdit was moved to<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   * org.apache.hadoop.hbase.wal, so class loading will fail on 2.0.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   */<a name="line.117"></a>
-<span class="sourceLineNo">118</span>  private static class MissingClass {<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>  @SuppressWarnings("unused")<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  private static class MissingClassObserver {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    public void method(MissingClass missingClass) {<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>  private static class MissingClassClassLoader extends ClassLoader {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    public MissingClassClassLoader() {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      super(getClassLoader());<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>    @Override<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    public Class&lt;?&gt; loadClass(String name) throws ClassNotFoundException {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      if (name.equals(getFullClassName("MissingClass"))) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>        throw new ClassNotFoundException(name);<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>      return super.findClass(name);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    }<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>  @Test<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  public void testMissingClass() throws IOException {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    MissingClassClassLoader missingClassClassLoader = new MissingClassClassLoader();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    List&lt;CoprocessorViolation&gt; violations = validate(missingClassClassLoader,<a name="line.145"></a>
-<span class="sourceLineNo">146</span>        "MissingClassObserver");<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    assertEquals(1, violations.size());<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>    CoprocessorViolation violation = violations.get(0);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    assertTrue(violation.getMessage().contains(<a name="line.151"></a>
-<span class="sourceLineNo">152</span>        "java.lang.ClassNotFoundException: " +<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$MissingClass"));<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>   * ObsoleteMethod coprocessor implements preCreateTable method which has<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   * HRegionInfo parameters. In our current implementation, we pass only<a name="line.158"></a>
-<span class="sourceLineNo">159</span>   * RegionInfo parameters, so this method won't be called by HBase at all.<a name="line.159"></a>
-<span class="sourceLineNo">160</span>   */<a name="line.160"></a>
-<span class="sourceLineNo">161</span>  @SuppressWarnings("unused")<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  private static class ObsoleteMethodObserver /* implements MasterObserver */ {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    public void preCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        HTableDescriptor desc, HRegionInfo[] regions) throws IOException {<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>  @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public void testObsoleteMethod() throws IOException {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    List&lt;CoprocessorViolation&gt; violations = validate("ObsoleteMethodObserver");<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    assertEquals(1, violations.size());<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>    CoprocessorViolation violation = violations.get(0);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    assertEquals(Severity.WARNING, violation.getSeverity());<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    assertTrue(violation.getMessage().contains("was removed from new coprocessor API"));<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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</pre>
-</div>
-</body>
-</html>


[18/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html b/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html
index c0721c6..f596dae 100644
--- a/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html
+++ b/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -119,7 +119,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.LimitedPrivate(value="Tools")
-public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.50">CoprocessorValidator</a>
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.60">CoprocessorValidator</a>
 extends <a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseTool.html" title="class in org.apache.hadoop.hbase.util">AbstractHBaseTool</a></pre>
 </li>
 </ul>
@@ -162,28 +162,36 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseToo
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>private <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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#args">args</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorMethods.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorMethods</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#branch1">branch1</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#classes">classes</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
+<td class="colFirst"><code>private boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#config">config</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorMethods.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorMethods</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#current">current</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#dieOnWarnings">dieOnWarnings</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#jars">jars</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>private static org.slf4j.Logger</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#scan">scan</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>private <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/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#tablePatterns">tablePatterns</a></span></code>&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
@@ -232,39 +240,39 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseToo
 </td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator.ResolverUrlClassLoader</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#createClassLoader-java.net.URL:A-">createClassLoader</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>[]&nbsp;urls)</code>&nbsp;</td>
+<td class="colFirst"><code>private <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/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#buildClasspath-java.util.List-">buildClasspath</a></span>(<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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;jars)</code>&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
-<td class="colFirst"><code>protected int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#doWork--">doWork</a></span>()</code>
-<div class="block">The "main function" of the tool</div>
-</td>
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator.ResolverUrlClassLoader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#createClassLoader-java.lang.ClassLoader-org.apache.hadoop.fs.Path-">createClassLoader</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;parent,
+                 org.apache.hadoop.fs.Path&nbsp;path)</code>&nbsp;</td>
 </tr>
 <tr id="i3" class="rowColor">
-<td class="colFirst"><code>protected <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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#filterObservers-java.lang.ClassLoader-java.lang.Iterable-">filterObservers</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
-               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<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>&gt;&nbsp;classNames)</code>&nbsp;</td>
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator.ResolverUrlClassLoader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#createClassLoader-java.net.URL:A-">createClassLoader</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>[]&nbsp;urls)</code>&nbsp;</td>
 </tr>
 <tr id="i4" class="altColor">
-<td class="colFirst"><code>protected <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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#getJarClasses-java.nio.file.Path-">getJarClasses</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/file/Path.html?is-external=true" title="class or interface in java.nio.file">Path</a>&nbsp;path)</code>&nbsp;</td>
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator.ResolverUrlClassLoader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#createClassLoader-java.net.URL:A-java.lang.ClassLoader-">createClassLoader</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>[]&nbsp;urls,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;parent)</code>&nbsp;</td>
 </tr>
 <tr id="i5" class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#doWork--">doWork</a></span>()</code>
+<div class="block">The "main function" of the tool</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#printUsage--">printUsage</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#processOptions-org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine-">processOptions</a></span>(org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine&nbsp;cmd)</code>
 <div class="block">This method is called to process the options after they have been parsed.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
-<td class="colFirst"><code><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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validate-java.lang.ClassLoader-java.util.List-">validate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
-        <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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;classNames)</code>&nbsp;</td>
-</tr>
 <tr id="i8" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validate-java.lang.ClassLoader-java.lang.String-java.util.List-">validate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
@@ -272,9 +280,29 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseToo
         <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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;&nbsp;violations)</code>&nbsp;</td>
 </tr>
 <tr id="i9" class="rowColor">
-<td class="colFirst"><code><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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validate-java.util.List-java.util.List-">validate</a></span>(<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/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>&gt;&nbsp;urls,
-        <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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;classNames)</code>&nbsp;</td>
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validateClasses-java.lang.ClassLoader-java.util.List-java.util.List-">validateClasses</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
+               <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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;classNames,
+               <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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;&nbsp;violations)</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/tool/coprocessor/CoprocessorValidator.html#validateClasses-java.lang.ClassLoader-java.lang.String:A-java.util.List-">validateClasses</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
+               <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;classNames,
+               <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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;&nbsp;violations)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validateTables-java.lang.ClassLoader-org.apache.hadoop.hbase.client.Admin-java.util.regex.Pattern-java.util.List-">validateTables</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
+              <a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern,
+              <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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;&nbsp;violations)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validateTables-java.lang.ClassLoader-java.util.regex.Pattern-java.util.List-">validateTables</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern,
+              <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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;&nbsp;violations)</code>&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
@@ -311,7 +339,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseToo
 <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/tool/coprocessor/CoprocessorValidator.html#line.51">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.61">LOG</a></pre>
 </li>
 </ul>
 <a name="branch1">
@@ -320,7 +348,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseToo
 <ul class="blockList">
 <li class="blockList">
 <h4>branch1</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorMethods.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorMethods</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.54">branch1</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorMethods.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorMethods</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.64">branch1</a></pre>
 </li>
 </ul>
 <a name="current">
@@ -329,34 +357,52 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseToo
 <ul class="blockList">
 <li class="blockList">
 <h4>current</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorMethods.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorMethods</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.55">current</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorMethods.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorMethods</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.65">current</a></pre>
 </li>
 </ul>
-<a name="dieOnWarnings">
+<a name="jars">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>dieOnWarnings</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.57">dieOnWarnings</a></pre>
+<h4>jars</h4>
+<pre>private final&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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.67">jars</a></pre>
 </li>
 </ul>
-<a name="scan">
+<a name="tablePatterns">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>scan</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.58">scan</a></pre>
+<h4>tablePatterns</h4>
+<pre>private final&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/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.68">tablePatterns</a></pre>
 </li>
 </ul>
-<a name="args">
+<a name="classes">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>classes</h4>
+<pre>private final&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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.69">classes</a></pre>
+</li>
+</ul>
+<a name="config">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>config</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.70">config</a></pre>
+</li>
+</ul>
+<a name="dieOnWarnings">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>args</h4>
-<pre>private&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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.59">args</a></pre>
+<h4>dieOnWarnings</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.72">dieOnWarnings</a></pre>
 </li>
 </ul>
 </li>
@@ -373,7 +419,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseToo
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CoprocessorValidator</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.61">CoprocessorValidator</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.74">CoprocessorValidator</a>()</pre>
 </li>
 </ul>
 </li>
@@ -390,7 +436,32 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseToo
 <ul class="blockList">
 <li class="blockList">
 <h4>createClassLoader</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator.ResolverUrlClassLoader</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.84">createClassLoader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>[]&nbsp;urls)</pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator.ResolverUrlClassLoader</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.101">createClassLoader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>[]&nbsp;urls)</pre>
+</li>
+</ul>
+<a name="createClassLoader-java.net.URL:A-java.lang.ClassLoader-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createClassLoader</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator.ResolverUrlClassLoader</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.105">createClassLoader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>[]&nbsp;urls,
+                                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;parent)</pre>
+</li>
+</ul>
+<a name="createClassLoader-java.lang.ClassLoader-org.apache.hadoop.fs.Path-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createClassLoader</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator.ResolverUrlClassLoader</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.114">createClassLoader</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;parent,
+                                                                      org.apache.hadoop.fs.Path&nbsp;path)
+                                                               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="validate-java.lang.ClassLoader-java.lang.String-java.util.List-">
@@ -399,62 +470,63 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseToo
 <ul class="blockList">
 <li class="blockList">
 <h4>validate</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.93">validate</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.129">validate</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
                       <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;className,
                       <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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;&nbsp;violations)</pre>
 </li>
 </ul>
-<a name="validate-java.lang.ClassLoader-java.util.List-">
+<a name="validateClasses-java.lang.ClassLoader-java.util.List-java.util.List-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>validate</h4>
-<pre>public&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="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.121">validate</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
-                                           <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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;classNames)</pre>
+<h4>validateClasses</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.157">validateClasses</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
+                            <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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;classNames,
+                            <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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;&nbsp;violations)</pre>
 </li>
 </ul>
-<a name="validate-java.util.List-java.util.List-">
+<a name="validateClasses-java.lang.ClassLoader-java.lang.String:A-java.util.List-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>validate</h4>
-<pre>public&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="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.131">validate</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="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>&gt;&nbsp;urls,
-                                           <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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;classNames)
-                                    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>
+<h4>validateClasses</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.164">validateClasses</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
+                            <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;classNames,
+                            <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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;&nbsp;violations)</pre>
 </li>
 </ul>
-<a name="getJarClasses-java.nio.file.Path-">
+<a name="validateTables-java.lang.ClassLoader-org.apache.hadoop.hbase.client.Admin-java.util.regex.Pattern-java.util.List-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getJarClasses</h4>
-<pre>protected&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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.142">getJarClasses</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/file/Path.html?is-external=true" title="class or interface in java.nio.file">Path</a>&nbsp;path)
-                              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>
+<h4>validateTables</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.170">validateTables</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
+                              <a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern,
+                              <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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;&nbsp;violations)
+                       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="filterObservers-java.lang.ClassLoader-java.lang.Iterable-">
+<a name="validateTables-java.lang.ClassLoader-java.util.regex.Pattern-java.util.List-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>filterObservers</h4>
-<pre>protected&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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.153">filterObservers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
-                                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<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>&gt;&nbsp;classNames)
-                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></pre>
+<h4>validateTables</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.201">validateTables</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern,
+                            <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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;&nbsp;violations)
+                     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/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></code></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>
 </ul>
@@ -464,7 +536,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseToo
 <ul class="blockList">
 <li class="blockList">
 <h4>printUsage</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.172">printUsage</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.210">printUsage</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseTool.html#printUsage--">printUsage</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseTool.html" title="class in org.apache.hadoop.hbase.util">AbstractHBaseTool</a></code></dd>
@@ -477,7 +549,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseToo
 <ul class="blockList">
 <li class="blockList">
 <h4>addOptions</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.179">addOptions</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.218">addOptions</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseTool.html#addOptions--">AbstractHBaseTool</a></code></span></div>
 <div class="block">Override this to add command-line options using <a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseTool.html#addOptWithArg-java.lang.String-java.lang.String-"><code>AbstractHBaseTool.addOptWithArg(java.lang.String, java.lang.String)</code></a>
  and similar methods.</div>
@@ -493,7 +565,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseToo
 <ul class="blockList">
 <li class="blockList">
 <h4>processOptions</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.185">processOptions</a>(org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine&nbsp;cmd)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.227">processOptions</a>(org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine&nbsp;cmd)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseTool.html#processOptions-org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine-">AbstractHBaseTool</a></code></span></div>
 <div class="block">This method is called to process the options after they have been parsed.</div>
 <dl>
@@ -502,13 +574,27 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseToo
 </dl>
 </li>
 </ul>
+<a name="buildClasspath-java.util.List-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildClasspath</h4>
+<pre>private&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/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.247">buildClasspath</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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;jars)
+                          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="doWork--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>doWork</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.192">doWork</a>()
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#line.273">doWork</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"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/util/AbstractHBaseTool.html#doWork--">AbstractHBaseTool</a></code></span></div>
 <div class="block">The "main function" of the tool</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html b/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html
index bfbaadb..5b2b58b 100644
--- a/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html
+++ b/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -151,12 +151,20 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <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/tool/coprocessor/CoprocessorViolation.html#message">message</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#className">className</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>private <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/tool/coprocessor/CoprocessorViolation.html#message">message</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html" title="enum in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation.Severity</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#severity">severity</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <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></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#throwable">throwable</a></span></code>&nbsp;</td>
+</tr>
 </table>
 </li>
 </ul>
@@ -172,11 +180,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <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/tool/coprocessor/CoprocessorViolation.html#CoprocessorViolation-org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity-java.lang.String-">CoprocessorViolation</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html" title="enum in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation.Severity</a>&nbsp;severity,
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#CoprocessorViolation-java.lang.String-org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity-java.lang.String-">CoprocessorViolation</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;className,
+                    <a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html" title="enum in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation.Severity</a>&nbsp;severity,
                     <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;message)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#CoprocessorViolation-org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity-java.lang.String-java.lang.Throwable-">CoprocessorViolation</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html" title="enum in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation.Severity</a>&nbsp;severity,
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#CoprocessorViolation-java.lang.String-org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity-java.lang.String-java.lang.Throwable-">CoprocessorViolation</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;className,
+                    <a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html" title="enum in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation.Severity</a>&nbsp;severity,
                     <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;message,
                     <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>&nbsp;t)</code>&nbsp;</td>
 </tr>
@@ -197,19 +207,31 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code><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/tool/coprocessor/CoprocessorViolation.html#getMessage--">getMessage</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#getClassName--">getClassName</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
+<td class="colFirst"><code><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/tool/coprocessor/CoprocessorViolation.html#getMessage--">getMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html" title="enum in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation.Severity</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#getSeverity--">getSeverity</a></span>()</code>&nbsp;</td>
 </tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><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></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#getThrowable--">getThrowable</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><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/tool/coprocessor/CoprocessorViolation.html#toString--">toString</a></span>()</code>&nbsp;</td>
+</tr>
 </table>
 <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>
+<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>
@@ -225,22 +247,40 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Field Detail</h3>
+<a name="className">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>className</h4>
+<pre>private 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/tool/coprocessor/CoprocessorViolation.html#line.32">className</a></pre>
+</li>
+</ul>
 <a name="severity">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>severity</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html" title="enum in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation.Severity</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#line.32">severity</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html" title="enum in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation.Severity</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#line.33">severity</a></pre>
 </li>
 </ul>
 <a name="message">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>message</h4>
-<pre>private 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/tool/coprocessor/CoprocessorViolation.html#line.33">message</a></pre>
+<pre>private 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/tool/coprocessor/CoprocessorViolation.html#line.34">message</a></pre>
+</li>
+</ul>
+<a name="throwable">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>throwable</h4>
+<pre>private final&nbsp;<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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#line.35">throwable</a></pre>
 </li>
 </ul>
 </li>
@@ -251,23 +291,25 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="CoprocessorViolation-org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity-java.lang.String-">
+<a name="CoprocessorViolation-java.lang.String-org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>CoprocessorViolation</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#line.35">CoprocessorViolation</a>(<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html" title="enum in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation.Severity</a>&nbsp;severity,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#line.37">CoprocessorViolation</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;className,
+                            <a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html" title="enum in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation.Severity</a>&nbsp;severity,
                             <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;message)</pre>
 </li>
 </ul>
-<a name="CoprocessorViolation-org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity-java.lang.String-java.lang.Throwable-">
+<a name="CoprocessorViolation-java.lang.String-org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity-java.lang.String-java.lang.Throwable-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CoprocessorViolation</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#line.39">CoprocessorViolation</a>(<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html" title="enum in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation.Severity</a>&nbsp;severity,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#line.41">CoprocessorViolation</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;className,
+                            <a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html" title="enum in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation.Severity</a>&nbsp;severity,
                             <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;message,
                             <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>&nbsp;t)</pre>
 </li>
@@ -280,22 +322,53 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Method Detail</h3>
+<a name="getClassName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getClassName</h4>
+<pre>public&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/tool/coprocessor/CoprocessorViolation.html#line.49">getClassName</a>()</pre>
+</li>
+</ul>
 <a name="getSeverity--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getSeverity</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html" title="enum in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation.Severity</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#line.49">getSeverity</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html" title="enum in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation.Severity</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#line.53">getSeverity</a>()</pre>
 </li>
 </ul>
 <a name="getMessage--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>getMessage</h4>
-<pre>public&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/tool/coprocessor/CoprocessorViolation.html#line.53">getMessage</a>()</pre>
+<pre>public&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/tool/coprocessor/CoprocessorViolation.html#line.57">getMessage</a>()</pre>
+</li>
+</ul>
+<a name="getThrowable--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getThrowable</h4>
+<pre>public&nbsp;<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>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#line.61">getThrowable</a>()</pre>
+</li>
+</ul>
+<a name="toString--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&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/tool/coprocessor/CoprocessorViolation.html#line.66">toString</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><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></code>&nbsp;in class&nbsp;<code><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></code></dd>
+</dl>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/class-use/CoprocessorValidator.ResolverUrlClassLoader.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/class-use/CoprocessorValidator.ResolverUrlClassLoader.html b/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/class-use/CoprocessorValidator.ResolverUrlClassLoader.html
index d6a1387..c943329 100644
--- a/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/class-use/CoprocessorValidator.ResolverUrlClassLoader.html
+++ b/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/class-use/CoprocessorValidator.ResolverUrlClassLoader.html
@@ -104,8 +104,18 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator.ResolverUrlClassLoader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CoprocessorValidator.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#createClassLoader-java.lang.ClassLoader-org.apache.hadoop.fs.Path-">createClassLoader</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;parent,
+                 org.apache.hadoop.fs.Path&nbsp;path)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator.ResolverUrlClassLoader</a></code></td>
 <td class="colLast"><span class="typeNameLabel">CoprocessorValidator.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#createClassLoader-java.net.URL:A-">createClassLoader</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>[]&nbsp;urls)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator.ResolverUrlClassLoader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CoprocessorValidator.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#createClassLoader-java.net.URL:A-java.lang.ClassLoader-">createClassLoader</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>[]&nbsp;urls,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;parent)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/class-use/CoprocessorViolation.Severity.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/class-use/CoprocessorViolation.Severity.html b/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/class-use/CoprocessorViolation.Severity.html
index ff50855..a0af5b4 100644
--- a/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/class-use/CoprocessorViolation.Severity.html
+++ b/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/class-use/CoprocessorViolation.Severity.html
@@ -141,11 +141,13 @@ the order they are declared.</div>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#CoprocessorViolation-org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity-java.lang.String-">CoprocessorViolation</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html" title="enum in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation.Severity</a>&nbsp;severity,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#CoprocessorViolation-java.lang.String-org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity-java.lang.String-">CoprocessorViolation</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;className,
+                    <a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html" title="enum in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation.Severity</a>&nbsp;severity,
                     <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;message)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#CoprocessorViolation-org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity-java.lang.String-java.lang.Throwable-">CoprocessorViolation</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html" title="enum in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation.Severity</a>&nbsp;severity,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html#CoprocessorViolation-java.lang.String-org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity-java.lang.String-java.lang.Throwable-">CoprocessorViolation</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;className,
+                    <a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html" title="enum in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation.Severity</a>&nbsp;severity,
                     <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;message,
                     <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>&nbsp;t)</code>&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/class-use/CoprocessorViolation.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/class-use/CoprocessorViolation.html b/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/class-use/CoprocessorViolation.html
index 880a447..fbb3ee2 100644
--- a/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/class-use/CoprocessorViolation.html
+++ b/devapidocs/org/apache/hadoop/hbase/tool/coprocessor/class-use/CoprocessorViolation.html
@@ -96,36 +96,42 @@
 </a>
 <h3>Uses of <a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a> in <a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/package-summary.html">org.apache.hadoop.hbase.tool.coprocessor</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/tool/coprocessor/package-summary.html">org.apache.hadoop.hbase.tool.coprocessor</a> that return types with arguments of type <a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a></span><span class="tabEnd">&nbsp;</span></caption>
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/package-summary.html">org.apache.hadoop.hbase.tool.coprocessor</a> with type arguments of type <a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</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="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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">CoprocessorValidator.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validate-java.lang.ClassLoader-java.util.List-">validate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
-        <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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;classNames)</code>&nbsp;</td>
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">CoprocessorValidator.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validate-java.lang.ClassLoader-java.lang.String-java.util.List-">validate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
+        <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;className,
+        <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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;&nbsp;violations)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">CoprocessorValidator.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validate-java.util.List-java.util.List-">validate</a></span>(<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/net/URL.html?is-external=true" title="class or interface in java.net">URL</a>&gt;&nbsp;urls,
-        <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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;classNames)</code>&nbsp;</td>
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">CoprocessorValidator.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validateClasses-java.lang.ClassLoader-java.util.List-java.util.List-">validateClasses</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
+               <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/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;classNames,
+               <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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;&nbsp;violations)</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>Method parameters in <a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/package-summary.html">org.apache.hadoop.hbase.tool.coprocessor</a> with type arguments of type <a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</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 class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">CoprocessorValidator.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validateClasses-java.lang.ClassLoader-java.lang.String:A-java.util.List-">validateClasses</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
+               <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;classNames,
+               <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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;&nbsp;violations)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">CoprocessorValidator.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validateTables-java.lang.ClassLoader-org.apache.hadoop.hbase.client.Admin-java.util.regex.Pattern-java.util.List-">validateTables</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
+              <a href="../../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern,
+              <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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;&nbsp;violations)</code>&nbsp;</td>
 </tr>
-<tbody>
 <tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">CoprocessorValidator.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validate-java.lang.ClassLoader-java.lang.String-java.util.List-">validate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
-        <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;className,
-        <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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;&nbsp;violations)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">CoprocessorValidator.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validateTables-java.lang.ClassLoader-java.util.regex.Pattern-java.util.List-">validateTables</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern,
+              <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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;&nbsp;violations)</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>


[07/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html
index b362b35..9babac2 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionChore.html
@@ -906,7 +906,7 @@
 <span class="sourceLineNo">898</span>    master.getMasterProcedureExecutor().submitProcedure(createSplitProcedure(parent, splitKey));<a name="line.898"></a>
 <span class="sourceLineNo">899</span><a name="line.899"></a>
 <span class="sourceLineNo">900</span>    // If the RS is &lt; 2.0 throw an exception to abort the operation, we are handling the split<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    if (master.getServerManager().getServerVersion(serverName) &lt; 0x0200000) {<a name="line.901"></a>
+<span class="sourceLineNo">901</span>    if (master.getServerManager().getVersionNumber(serverName) &lt; 0x0200000) {<a name="line.901"></a>
 <span class="sourceLineNo">902</span>      throw new UnsupportedOperationException(String.format(<a name="line.902"></a>
 <span class="sourceLineNo">903</span>        "Split handled by the master: parent=%s hriA=%s hriB=%s", parent.getShortNameToLog(), hriA, hriB));<a name="line.903"></a>
 <span class="sourceLineNo">904</span>    }<a name="line.904"></a>
@@ -929,7 +929,7 @@
 <span class="sourceLineNo">921</span>    master.getMasterProcedureExecutor().submitProcedure(createMergeProcedure(hriA, hriB));<a name="line.921"></a>
 <span class="sourceLineNo">922</span><a name="line.922"></a>
 <span class="sourceLineNo">923</span>    // If the RS is &lt; 2.0 throw an exception to abort the operation, we are handling the merge<a name="line.923"></a>
-<span class="sourceLineNo">924</span>    if (master.getServerManager().getServerVersion(serverName) &lt; 0x0200000) {<a name="line.924"></a>
+<span class="sourceLineNo">924</span>    if (master.getServerManager().getVersionNumber(serverName) &lt; 0x0200000) {<a name="line.924"></a>
 <span class="sourceLineNo">925</span>      throw new UnsupportedOperationException(String.format(<a name="line.925"></a>
 <span class="sourceLineNo">926</span>        "Merge not handled yet: regionState=%s merged=%s hriA=%s hriB=%s", state, merged, hriA,<a name="line.926"></a>
 <span class="sourceLineNo">927</span>          hriB));<a name="line.927"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html
index b362b35..9babac2 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.RegionInTransitionStat.html
@@ -906,7 +906,7 @@
 <span class="sourceLineNo">898</span>    master.getMasterProcedureExecutor().submitProcedure(createSplitProcedure(parent, splitKey));<a name="line.898"></a>
 <span class="sourceLineNo">899</span><a name="line.899"></a>
 <span class="sourceLineNo">900</span>    // If the RS is &lt; 2.0 throw an exception to abort the operation, we are handling the split<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    if (master.getServerManager().getServerVersion(serverName) &lt; 0x0200000) {<a name="line.901"></a>
+<span class="sourceLineNo">901</span>    if (master.getServerManager().getVersionNumber(serverName) &lt; 0x0200000) {<a name="line.901"></a>
 <span class="sourceLineNo">902</span>      throw new UnsupportedOperationException(String.format(<a name="line.902"></a>
 <span class="sourceLineNo">903</span>        "Split handled by the master: parent=%s hriA=%s hriB=%s", parent.getShortNameToLog(), hriA, hriB));<a name="line.903"></a>
 <span class="sourceLineNo">904</span>    }<a name="line.904"></a>
@@ -929,7 +929,7 @@
 <span class="sourceLineNo">921</span>    master.getMasterProcedureExecutor().submitProcedure(createMergeProcedure(hriA, hriB));<a name="line.921"></a>
 <span class="sourceLineNo">922</span><a name="line.922"></a>
 <span class="sourceLineNo">923</span>    // If the RS is &lt; 2.0 throw an exception to abort the operation, we are handling the merge<a name="line.923"></a>
-<span class="sourceLineNo">924</span>    if (master.getServerManager().getServerVersion(serverName) &lt; 0x0200000) {<a name="line.924"></a>
+<span class="sourceLineNo">924</span>    if (master.getServerManager().getVersionNumber(serverName) &lt; 0x0200000) {<a name="line.924"></a>
 <span class="sourceLineNo">925</span>      throw new UnsupportedOperationException(String.format(<a name="line.925"></a>
 <span class="sourceLineNo">926</span>        "Merge not handled yet: regionState=%s merged=%s hriA=%s hriB=%s", state, merged, hriA,<a name="line.926"></a>
 <span class="sourceLineNo">927</span>          hriB));<a name="line.927"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html
index b362b35..9babac2 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/AssignmentManager.html
@@ -906,7 +906,7 @@
 <span class="sourceLineNo">898</span>    master.getMasterProcedureExecutor().submitProcedure(createSplitProcedure(parent, splitKey));<a name="line.898"></a>
 <span class="sourceLineNo">899</span><a name="line.899"></a>
 <span class="sourceLineNo">900</span>    // If the RS is &lt; 2.0 throw an exception to abort the operation, we are handling the split<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    if (master.getServerManager().getServerVersion(serverName) &lt; 0x0200000) {<a name="line.901"></a>
+<span class="sourceLineNo">901</span>    if (master.getServerManager().getVersionNumber(serverName) &lt; 0x0200000) {<a name="line.901"></a>
 <span class="sourceLineNo">902</span>      throw new UnsupportedOperationException(String.format(<a name="line.902"></a>
 <span class="sourceLineNo">903</span>        "Split handled by the master: parent=%s hriA=%s hriB=%s", parent.getShortNameToLog(), hriA, hriB));<a name="line.903"></a>
 <span class="sourceLineNo">904</span>    }<a name="line.904"></a>
@@ -929,7 +929,7 @@
 <span class="sourceLineNo">921</span>    master.getMasterProcedureExecutor().submitProcedure(createMergeProcedure(hriA, hriB));<a name="line.921"></a>
 <span class="sourceLineNo">922</span><a name="line.922"></a>
 <span class="sourceLineNo">923</span>    // If the RS is &lt; 2.0 throw an exception to abort the operation, we are handling the merge<a name="line.923"></a>
-<span class="sourceLineNo">924</span>    if (master.getServerManager().getServerVersion(serverName) &lt; 0x0200000) {<a name="line.924"></a>
+<span class="sourceLineNo">924</span>    if (master.getServerManager().getVersionNumber(serverName) &lt; 0x0200000) {<a name="line.924"></a>
 <span class="sourceLineNo">925</span>      throw new UnsupportedOperationException(String.format(<a name="line.925"></a>
 <span class="sourceLineNo">926</span>        "Merge not handled yet: regionState=%s merged=%s hriA=%s hriB=%s", state, merged, hriA,<a name="line.926"></a>
 <span class="sourceLineNo">927</span>          hriB));<a name="line.927"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.AbstractRSRemoteCall.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.AbstractRSRemoteCall.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.AbstractRSRemoteCall.html
index 9b020f4..bf167c7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.AbstractRSRemoteCall.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.AbstractRSRemoteCall.html
@@ -116,7 +116,7 @@
 <span class="sourceLineNo">108</span>  @Override<a name="line.108"></a>
 <span class="sourceLineNo">109</span>  protected void remoteDispatch(final ServerName serverName,<a name="line.109"></a>
 <span class="sourceLineNo">110</span>      final Set&lt;RemoteProcedure&gt; remoteProcedures) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getServerVersion(serverName);<a name="line.111"></a>
+<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getVersionNumber(serverName);<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    if (rsVersion &gt;= RS_VERSION_WITH_EXEC_PROCS) {<a name="line.112"></a>
 <span class="sourceLineNo">113</span>      LOG.trace("Using procedure batch rpc execution for serverName={} version={}", serverName,<a name="line.113"></a>
 <span class="sourceLineNo">114</span>        rsVersion);<a name="line.114"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.CloseRegionRemoteCall.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.CloseRegionRemoteCall.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.CloseRegionRemoteCall.html
index 9b020f4..bf167c7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.CloseRegionRemoteCall.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.CloseRegionRemoteCall.html
@@ -116,7 +116,7 @@
 <span class="sourceLineNo">108</span>  @Override<a name="line.108"></a>
 <span class="sourceLineNo">109</span>  protected void remoteDispatch(final ServerName serverName,<a name="line.109"></a>
 <span class="sourceLineNo">110</span>      final Set&lt;RemoteProcedure&gt; remoteProcedures) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getServerVersion(serverName);<a name="line.111"></a>
+<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getVersionNumber(serverName);<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    if (rsVersion &gt;= RS_VERSION_WITH_EXEC_PROCS) {<a name="line.112"></a>
 <span class="sourceLineNo">113</span>      LOG.trace("Using procedure batch rpc execution for serverName={} version={}", serverName,<a name="line.113"></a>
 <span class="sourceLineNo">114</span>        rsVersion);<a name="line.114"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.CompatRemoteProcedureResolver.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.CompatRemoteProcedureResolver.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.CompatRemoteProcedureResolver.html
index 9b020f4..bf167c7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.CompatRemoteProcedureResolver.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.CompatRemoteProcedureResolver.html
@@ -116,7 +116,7 @@
 <span class="sourceLineNo">108</span>  @Override<a name="line.108"></a>
 <span class="sourceLineNo">109</span>  protected void remoteDispatch(final ServerName serverName,<a name="line.109"></a>
 <span class="sourceLineNo">110</span>      final Set&lt;RemoteProcedure&gt; remoteProcedures) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getServerVersion(serverName);<a name="line.111"></a>
+<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getVersionNumber(serverName);<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    if (rsVersion &gt;= RS_VERSION_WITH_EXEC_PROCS) {<a name="line.112"></a>
 <span class="sourceLineNo">113</span>      LOG.trace("Using procedure batch rpc execution for serverName={} version={}", serverName,<a name="line.113"></a>
 <span class="sourceLineNo">114</span>        rsVersion);<a name="line.114"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.DeadRSRemoteCall.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.DeadRSRemoteCall.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.DeadRSRemoteCall.html
index 9b020f4..bf167c7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.DeadRSRemoteCall.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.DeadRSRemoteCall.html
@@ -116,7 +116,7 @@
 <span class="sourceLineNo">108</span>  @Override<a name="line.108"></a>
 <span class="sourceLineNo">109</span>  protected void remoteDispatch(final ServerName serverName,<a name="line.109"></a>
 <span class="sourceLineNo">110</span>      final Set&lt;RemoteProcedure&gt; remoteProcedures) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getServerVersion(serverName);<a name="line.111"></a>
+<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getVersionNumber(serverName);<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    if (rsVersion &gt;= RS_VERSION_WITH_EXEC_PROCS) {<a name="line.112"></a>
 <span class="sourceLineNo">113</span>      LOG.trace("Using procedure batch rpc execution for serverName={} version={}", serverName,<a name="line.113"></a>
 <span class="sourceLineNo">114</span>        rsVersion);<a name="line.114"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ExecuteProceduresRemoteCall.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ExecuteProceduresRemoteCall.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ExecuteProceduresRemoteCall.html
index 9b020f4..bf167c7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ExecuteProceduresRemoteCall.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ExecuteProceduresRemoteCall.html
@@ -116,7 +116,7 @@
 <span class="sourceLineNo">108</span>  @Override<a name="line.108"></a>
 <span class="sourceLineNo">109</span>  protected void remoteDispatch(final ServerName serverName,<a name="line.109"></a>
 <span class="sourceLineNo">110</span>      final Set&lt;RemoteProcedure&gt; remoteProcedures) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getServerVersion(serverName);<a name="line.111"></a>
+<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getVersionNumber(serverName);<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    if (rsVersion &gt;= RS_VERSION_WITH_EXEC_PROCS) {<a name="line.112"></a>
 <span class="sourceLineNo">113</span>      LOG.trace("Using procedure batch rpc execution for serverName={} version={}", serverName,<a name="line.113"></a>
 <span class="sourceLineNo">114</span>        rsVersion);<a name="line.114"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.OpenRegionRemoteCall.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.OpenRegionRemoteCall.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.OpenRegionRemoteCall.html
index 9b020f4..bf167c7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.OpenRegionRemoteCall.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.OpenRegionRemoteCall.html
@@ -116,7 +116,7 @@
 <span class="sourceLineNo">108</span>  @Override<a name="line.108"></a>
 <span class="sourceLineNo">109</span>  protected void remoteDispatch(final ServerName serverName,<a name="line.109"></a>
 <span class="sourceLineNo">110</span>      final Set&lt;RemoteProcedure&gt; remoteProcedures) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getServerVersion(serverName);<a name="line.111"></a>
+<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getVersionNumber(serverName);<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    if (rsVersion &gt;= RS_VERSION_WITH_EXEC_PROCS) {<a name="line.112"></a>
 <span class="sourceLineNo">113</span>      LOG.trace("Using procedure batch rpc execution for serverName={} version={}", serverName,<a name="line.113"></a>
 <span class="sourceLineNo">114</span>        rsVersion);<a name="line.114"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionCloseOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionCloseOperation.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionCloseOperation.html
index 9b020f4..bf167c7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionCloseOperation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionCloseOperation.html
@@ -116,7 +116,7 @@
 <span class="sourceLineNo">108</span>  @Override<a name="line.108"></a>
 <span class="sourceLineNo">109</span>  protected void remoteDispatch(final ServerName serverName,<a name="line.109"></a>
 <span class="sourceLineNo">110</span>      final Set&lt;RemoteProcedure&gt; remoteProcedures) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getServerVersion(serverName);<a name="line.111"></a>
+<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getVersionNumber(serverName);<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    if (rsVersion &gt;= RS_VERSION_WITH_EXEC_PROCS) {<a name="line.112"></a>
 <span class="sourceLineNo">113</span>      LOG.trace("Using procedure batch rpc execution for serverName={} version={}", serverName,<a name="line.113"></a>
 <span class="sourceLineNo">114</span>        rsVersion);<a name="line.114"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOpenOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOpenOperation.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOpenOperation.html
index 9b020f4..bf167c7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOpenOperation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOpenOperation.html
@@ -116,7 +116,7 @@
 <span class="sourceLineNo">108</span>  @Override<a name="line.108"></a>
 <span class="sourceLineNo">109</span>  protected void remoteDispatch(final ServerName serverName,<a name="line.109"></a>
 <span class="sourceLineNo">110</span>      final Set&lt;RemoteProcedure&gt; remoteProcedures) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getServerVersion(serverName);<a name="line.111"></a>
+<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getVersionNumber(serverName);<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    if (rsVersion &gt;= RS_VERSION_WITH_EXEC_PROCS) {<a name="line.112"></a>
 <span class="sourceLineNo">113</span>      LOG.trace("Using procedure batch rpc execution for serverName={} version={}", serverName,<a name="line.113"></a>
 <span class="sourceLineNo">114</span>        rsVersion);<a name="line.114"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOperation.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOperation.html
index 9b020f4..bf167c7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOperation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RegionOperation.html
@@ -116,7 +116,7 @@
 <span class="sourceLineNo">108</span>  @Override<a name="line.108"></a>
 <span class="sourceLineNo">109</span>  protected void remoteDispatch(final ServerName serverName,<a name="line.109"></a>
 <span class="sourceLineNo">110</span>      final Set&lt;RemoteProcedure&gt; remoteProcedures) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getServerVersion(serverName);<a name="line.111"></a>
+<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getVersionNumber(serverName);<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    if (rsVersion &gt;= RS_VERSION_WITH_EXEC_PROCS) {<a name="line.112"></a>
 <span class="sourceLineNo">113</span>      LOG.trace("Using procedure batch rpc execution for serverName={} version={}", serverName,<a name="line.113"></a>
 <span class="sourceLineNo">114</span>        rsVersion);<a name="line.114"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RemoteProcedureResolver.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RemoteProcedureResolver.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RemoteProcedureResolver.html
index 9b020f4..bf167c7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RemoteProcedureResolver.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.RemoteProcedureResolver.html
@@ -116,7 +116,7 @@
 <span class="sourceLineNo">108</span>  @Override<a name="line.108"></a>
 <span class="sourceLineNo">109</span>  protected void remoteDispatch(final ServerName serverName,<a name="line.109"></a>
 <span class="sourceLineNo">110</span>      final Set&lt;RemoteProcedure&gt; remoteProcedures) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getServerVersion(serverName);<a name="line.111"></a>
+<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getVersionNumber(serverName);<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    if (rsVersion &gt;= RS_VERSION_WITH_EXEC_PROCS) {<a name="line.112"></a>
 <span class="sourceLineNo">113</span>      LOG.trace("Using procedure batch rpc execution for serverName={} version={}", serverName,<a name="line.113"></a>
 <span class="sourceLineNo">114</span>        rsVersion);<a name="line.114"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ServerOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ServerOperation.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ServerOperation.html
index 9b020f4..bf167c7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ServerOperation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.ServerOperation.html
@@ -116,7 +116,7 @@
 <span class="sourceLineNo">108</span>  @Override<a name="line.108"></a>
 <span class="sourceLineNo">109</span>  protected void remoteDispatch(final ServerName serverName,<a name="line.109"></a>
 <span class="sourceLineNo">110</span>      final Set&lt;RemoteProcedure&gt; remoteProcedures) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getServerVersion(serverName);<a name="line.111"></a>
+<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getVersionNumber(serverName);<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    if (rsVersion &gt;= RS_VERSION_WITH_EXEC_PROCS) {<a name="line.112"></a>
 <span class="sourceLineNo">113</span>      LOG.trace("Using procedure batch rpc execution for serverName={} version={}", serverName,<a name="line.113"></a>
 <span class="sourceLineNo">114</span>        rsVersion);<a name="line.114"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.html
index 9b020f4..bf167c7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.html
@@ -116,7 +116,7 @@
 <span class="sourceLineNo">108</span>  @Override<a name="line.108"></a>
 <span class="sourceLineNo">109</span>  protected void remoteDispatch(final ServerName serverName,<a name="line.109"></a>
 <span class="sourceLineNo">110</span>      final Set&lt;RemoteProcedure&gt; remoteProcedures) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getServerVersion(serverName);<a name="line.111"></a>
+<span class="sourceLineNo">111</span>    final int rsVersion = master.getServerManager().getVersionNumber(serverName);<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    if (rsVersion &gt;= RS_VERSION_WITH_EXEC_PROCS) {<a name="line.112"></a>
 <span class="sourceLineNo">113</span>      LOG.trace("Using procedure batch rpc execution for serverName={} version={}", serverName,<a name="line.113"></a>
 <span class="sourceLineNo">114</span>        rsVersion);<a name="line.114"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/tool/PreUpgradeValidator.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tool/PreUpgradeValidator.html b/devapidocs/src-html/org/apache/hadoop/hbase/tool/PreUpgradeValidator.html
index 7de8624..5713164 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tool/PreUpgradeValidator.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tool/PreUpgradeValidator.html
@@ -73,9 +73,9 @@
 <span class="sourceLineNo">065</span>  private void printUsage() {<a name="line.65"></a>
 <span class="sourceLineNo">066</span>    System.out.println("usage: hbase " + TOOL_NAME + " command ...");<a name="line.66"></a>
 <span class="sourceLineNo">067</span>    System.out.println("Available commands:");<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    System.out.printf(" %-12s Validate co-processors are compatible with HBase%n",<a name="line.68"></a>
+<span class="sourceLineNo">068</span>    System.out.printf(" %-15s Validate co-processors are compatible with HBase%n",<a name="line.68"></a>
 <span class="sourceLineNo">069</span>        VALIDATE_CP_NAME);<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    System.out.printf(" %-12s Validate DataBlockEncoding are compatible on the cluster%n",<a name="line.70"></a>
+<span class="sourceLineNo">070</span>    System.out.printf(" %-15s Validate DataBlockEncodings are compatible with HBase%n",<a name="line.70"></a>
 <span class="sourceLineNo">071</span>        VALIDATE_DBE_NAME);<a name="line.71"></a>
 <span class="sourceLineNo">072</span>    System.out.println("For further information, please use command -h");<a name="line.72"></a>
 <span class="sourceLineNo">073</span>  }<a name="line.73"></a>
@@ -112,16 +112,18 @@
 <span class="sourceLineNo">104</span>  public static void main(String[] args) {<a name="line.104"></a>
 <span class="sourceLineNo">105</span>    int ret;<a name="line.105"></a>
 <span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>    try {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      ret = ToolRunner.run(HBaseConfiguration.create(), new PreUpgradeValidator(), args);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    } catch (Exception e) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      LOG.error("Error running command-line tool", e);<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      ret = AbstractHBaseTool.EXIT_FAILURE;<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>    System.exit(ret);<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">107</span>    Configuration conf = HBaseConfiguration.create();<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>    try {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      ret = ToolRunner.run(conf, new PreUpgradeValidator(), args);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    } catch (Exception e) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>      LOG.error("Error running command-line tool", e);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      ret = AbstractHBaseTool.EXIT_FAILURE;<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>    System.exit(ret);<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>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html b/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html
index e026bb1..7bf358d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.ResolverUrlClassLoader.html
@@ -31,228 +31,325 @@
 <span class="sourceLineNo">023</span>import java.lang.reflect.Method;<a name="line.23"></a>
 <span class="sourceLineNo">024</span>import java.net.URL;<a name="line.24"></a>
 <span class="sourceLineNo">025</span>import java.net.URLClassLoader;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.nio.file.Path;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.nio.file.Paths;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.security.AccessController;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.security.PrivilegedAction;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.ArrayList;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.List;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.jar.JarEntry;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.util.jar.JarFile;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import java.util.stream.Collectors;<a name="line.34"></a>
-<span class="sourceLineNo">035</span><a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.Coprocessor;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.tool.PreUpgradeValidator;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.util.AbstractHBaseTool;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.slf4j.Logger;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.slf4j.LoggerFactory;<a name="line.43"></a>
-<span class="sourceLineNo">044</span><a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.ParseException;<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.49"></a>
-<span class="sourceLineNo">050</span>public class CoprocessorValidator extends AbstractHBaseTool {<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  private static final Logger LOG = LoggerFactory<a name="line.51"></a>
-<span class="sourceLineNo">052</span>      .getLogger(CoprocessorValidator.class);<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>  private CoprocessorMethods branch1;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  private CoprocessorMethods current;<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>  private boolean dieOnWarnings;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  private boolean scan;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  private List&lt;String&gt; args;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>  public CoprocessorValidator() {<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    branch1 = new Branch1CoprocessorMethods();<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    current = new CurrentCoprocessorMethods();<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>  /**<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   * This classloader implementation calls {@link #resolveClass(Class)}<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   * method for every loaded class. It means that some extra validation will<a name="line.68"></a>
-<span class="sourceLineNo">069</span>   * take place &lt;a<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   * href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.3"&gt;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>   * according to JLS&lt;/a&gt;.<a name="line.71"></a>
-<span class="sourceLineNo">072</span>   */<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private static final class ResolverUrlClassLoader extends URLClassLoader {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    private ResolverUrlClassLoader(URL[] urls) {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      super(urls, ResolverUrlClassLoader.class.getClassLoader());<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    }<a name="line.76"></a>
+<span class="sourceLineNo">026</span>import java.nio.file.Files;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.nio.file.Path;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.nio.file.Paths;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.security.AccessController;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.security.PrivilegedAction;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.util.ArrayList;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.util.Arrays;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.Collection;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Collections;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.List;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.Optional;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.regex.Pattern;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import java.util.stream.Collectors;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import java.util.stream.Stream;<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.fs.FileSystem;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.client.CoprocessorDescriptor;<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.coprocessor.CoprocessorHost;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.tool.PreUpgradeValidator;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.util.AbstractHBaseTool;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.slf4j.Logger;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.slf4j.LoggerFactory;<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.59"></a>
+<span class="sourceLineNo">060</span>public class CoprocessorValidator extends AbstractHBaseTool {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  private static final Logger LOG = LoggerFactory<a name="line.61"></a>
+<span class="sourceLineNo">062</span>      .getLogger(CoprocessorValidator.class);<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>  private CoprocessorMethods branch1;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  private CoprocessorMethods current;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  private final List&lt;String&gt; jars;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  private final List&lt;Pattern&gt; tablePatterns;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  private final List&lt;String&gt; classes;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  private boolean config;<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  private boolean dieOnWarnings;<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>  public CoprocessorValidator() {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    branch1 = new Branch1CoprocessorMethods();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    current = new CurrentCoprocessorMethods();<a name="line.76"></a>
 <span class="sourceLineNo">077</span><a name="line.77"></a>
-<span class="sourceLineNo">078</span>    @Override<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    public Class&lt;?&gt; loadClass(String name) throws ClassNotFoundException {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      return loadClass(name, true);<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><a name="line.83"></a>
-<span class="sourceLineNo">084</span>  private ResolverUrlClassLoader createClassLoader(URL[] urls) {<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    return AccessController.doPrivileged(new PrivilegedAction&lt;ResolverUrlClassLoader&gt;() {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      @Override<a name="line.86"></a>
-<span class="sourceLineNo">087</span>      public ResolverUrlClassLoader run() {<a name="line.87"></a>
-<span class="sourceLineNo">088</span>        return new ResolverUrlClassLoader(urls);<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><a name="line.92"></a>
-<span class="sourceLineNo">093</span>  private void validate(ClassLoader classLoader, String className,<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      List&lt;CoprocessorViolation&gt; violations) {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    LOG.debug("Validating class '{}'.", className);<a name="line.95"></a>
-<span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span>    try {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      Class&lt;?&gt; clazz = classLoader.loadClass(className);<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>      for (Method method : clazz.getDeclaredMethods()) {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>        LOG.trace("Validating method '{}'.", method);<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>        if (branch1.hasMethod(method) &amp;&amp; !current.hasMethod(method)) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>          CoprocessorViolation violation = new CoprocessorViolation(Severity.WARNING,<a name="line.104"></a>
-<span class="sourceLineNo">105</span>              "Method '" + method + "' was removed from new coprocessor API, "<a name="line.105"></a>
-<span class="sourceLineNo">106</span>                  + "so it won't be called by HBase.");<a name="line.106"></a>
-<span class="sourceLineNo">107</span>          violations.add(violation);<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>    } catch (ClassNotFoundException e) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      CoprocessorViolation violation = new CoprocessorViolation(Severity.ERROR,<a name="line.111"></a>
-<span class="sourceLineNo">112</span>          "No such class '" + className + "'.", e);<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      violations.add(violation);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    } catch (RuntimeException | Error e) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      CoprocessorViolation violation = new CoprocessorViolation(Severity.ERROR,<a name="line.115"></a>
-<span class="sourceLineNo">116</span>          "Could not validate class '" + className + "'.", e);<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      violations.add(violation);<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    }<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  }<a name="line.119"></a>
+<span class="sourceLineNo">078</span>    jars = new ArrayList&lt;&gt;();<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    tablePatterns = new ArrayList&lt;&gt;();<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    classes = new ArrayList&lt;&gt;();<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>  /**<a name="line.83"></a>
+<span class="sourceLineNo">084</span>   * This classloader implementation calls {@link #resolveClass(Class)}<a name="line.84"></a>
+<span class="sourceLineNo">085</span>   * method for every loaded class. It means that some extra validation will<a name="line.85"></a>
+<span class="sourceLineNo">086</span>   * take place &lt;a<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   * href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.3"&gt;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>   * according to JLS&lt;/a&gt;.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  private static final class ResolverUrlClassLoader extends URLClassLoader {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    private ResolverUrlClassLoader(URL[] urls, ClassLoader parent) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      super(urls, parent);<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>    @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    public Class&lt;?&gt; loadClass(String name) throws ClassNotFoundException {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      return loadClass(name, true);<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>  private ResolverUrlClassLoader createClassLoader(URL[] urls) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    return createClassLoader(urls, getClass().getClassLoader());<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>  private ResolverUrlClassLoader createClassLoader(URL[] urls, ClassLoader parent) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    return AccessController.doPrivileged(new PrivilegedAction&lt;ResolverUrlClassLoader&gt;() {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      @Override<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      public ResolverUrlClassLoader run() {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>        return new ResolverUrlClassLoader(urls, parent);<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>  }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>  private ResolverUrlClassLoader createClassLoader(ClassLoader parent,<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      org.apache.hadoop.fs.Path path) throws IOException {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    Path tempPath = Files.createTempFile("hbase-coprocessor-", ".jar");<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    org.apache.hadoop.fs.Path destination = new org.apache.hadoop.fs.Path(tempPath.toString());<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>    LOG.debug("Copying coprocessor jar '{}' to '{}'.", path, tempPath);<a name="line.119"></a>
 <span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>  public List&lt;CoprocessorViolation&gt; validate(ClassLoader classLoader, List&lt;String&gt; classNames) {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    List&lt;CoprocessorViolation&gt; violations = new ArrayList&lt;&gt;();<a name="line.122"></a>
+<span class="sourceLineNo">121</span>    FileSystem fileSystem = FileSystem.get(getConf());<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    fileSystem.copyToLocalFile(path, destination);<a name="line.122"></a>
 <span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>    for (String className : classNames) {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      validate(classLoader, className, violations);<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>    return violations;<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>  public List&lt;CoprocessorViolation&gt; validate(List&lt;URL&gt; urls, List&lt;String&gt; classNames)<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      throws IOException {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    URL[] urlArray = new URL[urls.size()];<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    urls.toArray(urlArray);<a name="line.134"></a>
+<span class="sourceLineNo">124</span>    URL url = tempPath.toUri().toURL();<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>    return createClassLoader(new URL[] { url }, parent);<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>  private void validate(ClassLoader classLoader, String className,<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      List&lt;CoprocessorViolation&gt; violations) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    LOG.debug("Validating class '{}'.", className);<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>    try {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      Class&lt;?&gt; clazz = classLoader.loadClass(className);<a name="line.134"></a>
 <span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    try (ResolverUrlClassLoader classLoader = createClassLoader(urlArray)) {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      return validate(classLoader, classNames);<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><a name="line.140"></a>
-<span class="sourceLineNo">141</span>  @VisibleForTesting<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  protected List&lt;String&gt; getJarClasses(Path path) throws IOException {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    try (JarFile jarFile = new JarFile(path.toFile())) {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      return jarFile.stream()<a name="line.144"></a>
-<span class="sourceLineNo">145</span>          .map(JarEntry::getName)<a name="line.145"></a>
-<span class="sourceLineNo">146</span>          .filter((name) -&gt; name.endsWith(".class"))<a name="line.146"></a>
-<span class="sourceLineNo">147</span>          .map((name) -&gt; name.substring(0, name.length() - 6).replace('/', '.'))<a name="line.147"></a>
-<span class="sourceLineNo">148</span>          .collect(Collectors.toList());<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><a name="line.151"></a>
-<span class="sourceLineNo">152</span>  @VisibleForTesting<a name="line.152"></a>
-<span class="sourceLineNo">153</span>  protected List&lt;String&gt; filterObservers(ClassLoader classLoader,<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      Iterable&lt;String&gt; classNames) throws ClassNotFoundException {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    List&lt;String&gt; filteredClassNames = new ArrayList&lt;&gt;();<a name="line.155"></a>
+<span class="sourceLineNo">136</span>      for (Method method : clazz.getDeclaredMethods()) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        LOG.trace("Validating method '{}'.", method);<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>        if (branch1.hasMethod(method) &amp;&amp; !current.hasMethod(method)) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>          CoprocessorViolation violation = new CoprocessorViolation(<a name="line.140"></a>
+<span class="sourceLineNo">141</span>              className, Severity.WARNING, "method '" + method +<a name="line.141"></a>
+<span class="sourceLineNo">142</span>              "' was removed from new coprocessor API, so it won't be called by HBase");<a name="line.142"></a>
+<span class="sourceLineNo">143</span>          violations.add(violation);<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>    } catch (ClassNotFoundException e) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      CoprocessorViolation violation = new CoprocessorViolation(<a name="line.147"></a>
+<span class="sourceLineNo">148</span>          className, Severity.ERROR, "no such class", e);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      violations.add(violation);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    } catch (RuntimeException | Error e) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      CoprocessorViolation violation = new CoprocessorViolation(<a name="line.151"></a>
+<span class="sourceLineNo">152</span>          className, Severity.ERROR, "could not validate class", e);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      violations.add(violation);<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>    for (String className : classNames) {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      LOG.debug("Scanning class '{}'.", className);<a name="line.158"></a>
-<span class="sourceLineNo">159</span><a name="line.159"></a>
-<span class="sourceLineNo">160</span>      Class&lt;?&gt; clazz = classLoader.loadClass(className);<a name="line.160"></a>
-<span class="sourceLineNo">161</span><a name="line.161"></a>
-<span class="sourceLineNo">162</span>      if (Coprocessor.class.isAssignableFrom(clazz)) {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>        LOG.debug("Found coprocessor class '{}'.", className);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        filteredClassNames.add(className);<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 filteredClassNames;<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>  @Override<a name="line.171"></a>
-<span class="sourceLineNo">172</span>  protected void printUsage() {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    String header = "hbase " + PreUpgradeValidator.TOOL_NAME + " " +<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        PreUpgradeValidator.VALIDATE_CP_NAME + " &lt;jar&gt; -scan|&lt;classes&gt;";<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    printUsage(header, "Options:", "");<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>  @Override<a name="line.178"></a>
-<span class="sourceLineNo">179</span>  protected void addOptions() {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    addOptNoArg("e", "Treat warnings as errors.");<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    addOptNoArg("scan", "Scan jar for observers.");<a name="line.181"></a>
-<span class="sourceLineNo">182</span>  }<a name="line.182"></a>
+<span class="sourceLineNo">157</span>  public void validateClasses(ClassLoader classLoader, List&lt;String&gt; classNames,<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      List&lt;CoprocessorViolation&gt; violations) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    for (String className : classNames) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      validate(classLoader, className, violations);<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><a name="line.163"></a>
+<span class="sourceLineNo">164</span>  public void validateClasses(ClassLoader classLoader, String[] classNames,<a name="line.164"></a>
+<span class="sourceLineNo">165</span>      List&lt;CoprocessorViolation&gt; violations) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    validateClasses(classLoader, Arrays.asList(classNames), violations);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>  @VisibleForTesting<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  protected void validateTables(ClassLoader classLoader, Admin admin,<a name="line.170"></a>
+<span class="sourceLineNo">171</span>      Pattern pattern, List&lt;CoprocessorViolation&gt; violations) throws IOException {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    List&lt;TableDescriptor&gt; tableDescriptors = admin.listTableDescriptors(pattern);<a name="line.172"></a>
+<span class="sourceLineNo">173</span><a name="line.173"></a>
+<span class="sourceLineNo">174</span>    for (TableDescriptor tableDescriptor : tableDescriptors) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      LOG.debug("Validating table {}", tableDescriptor.getTableName());<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>      Collection&lt;CoprocessorDescriptor&gt; coprocessorDescriptors =<a name="line.177"></a>
+<span class="sourceLineNo">178</span>          tableDescriptor.getCoprocessorDescriptors();<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>      for (CoprocessorDescriptor coprocessorDescriptor : coprocessorDescriptors) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        String className = coprocessorDescriptor.getClassName();<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        Optional&lt;String&gt; jarPath = coprocessorDescriptor.getJarPath();<a name="line.182"></a>
 <span class="sourceLineNo">183</span><a name="line.183"></a>
-<span class="sourceLineNo">184</span>  @Override<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  protected void processOptions(CommandLine cmd) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    scan = cmd.hasOption("scan");<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    dieOnWarnings = cmd.hasOption("e");<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    args = cmd.getArgList();<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>  @Override<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  protected int doWork() throws Exception {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    if (args.size() &lt; 1) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      System.err.println("Missing jar file.");<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      printUsage();<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      return EXIT_FAILURE;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    }<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>    String jar = args.get(0);<a name="line.199"></a>
+<span class="sourceLineNo">184</span>        if (jarPath.isPresent()) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>          org.apache.hadoop.fs.Path path = new org.apache.hadoop.fs.Path(jarPath.get());<a name="line.185"></a>
+<span class="sourceLineNo">186</span>          try (ResolverUrlClassLoader cpClassLoader = createClassLoader(classLoader, path)) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>            validate(cpClassLoader, className, violations);<a name="line.187"></a>
+<span class="sourceLineNo">188</span>          } catch (IOException e) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>            CoprocessorViolation violation = new CoprocessorViolation(<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                className, Severity.ERROR,<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                "could not validate jar file '" + path + "'", e);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>            violations.add(violation);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>          }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        } else {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>          validate(classLoader, className, violations);<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>    }<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>    if (args.size() == 1 &amp;&amp; !scan) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      throw new ParseException("Missing classes or -scan option.");<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    } else if (args.size() &gt; 1 &amp;&amp; scan) {<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      throw new ParseException("Can't use classes with -scan option.");<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    }<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>    Path jarPath = Paths.get(jar);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    URL[] urls = new URL[] { jarPath.toUri().toURL() };<a name="line.208"></a>
-<span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span>    List&lt;CoprocessorViolation&gt; violations;<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>    try (ResolverUrlClassLoader classLoader = createClassLoader(urls)) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      List&lt;String&gt; classNames;<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>      if (scan) {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>        List&lt;String&gt; jarClassNames = getJarClasses(jarPath);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        classNames = filterObservers(classLoader, jarClassNames);<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      } else {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>        classNames = args.subList(1, args.size());<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>      violations = validate(classLoader, classNames);<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>    boolean error = false;<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>    for (CoprocessorViolation violation : violations) {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      switch (violation.getSeverity()) {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        case WARNING:<a name="line.229"></a>
-<span class="sourceLineNo">230</span>          System.err.println("[WARNING] " + violation.getMessage());<a name="line.230"></a>
-<span class="sourceLineNo">231</span><a name="line.231"></a>
-<span class="sourceLineNo">232</span>          if (dieOnWarnings) {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>            error = true;<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>          break;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        case ERROR:<a name="line.237"></a>
-<span class="sourceLineNo">238</span>          System.err.println("[ERROR] " + violation.getMessage());<a name="line.238"></a>
-<span class="sourceLineNo">239</span>          error = true;<a name="line.239"></a>
-<span class="sourceLineNo">240</span><a name="line.240"></a>
-<span class="sourceLineNo">241</span>          break;<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>    return (error) ? EXIT_FAILURE : EXIT_SUCCESS;<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
-<span class="sourceLineNo">247</span>}<a name="line.247"></a>
+<span class="sourceLineNo">201</span>  private void validateTables(ClassLoader classLoader, Pattern pattern,<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      List&lt;CoprocessorViolation&gt; violations) throws IOException {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    try (Connection connection = ConnectionFactory.createConnection(getConf());<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        Admin admin = connection.getAdmin()) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      validateTables(classLoader, admin, pattern, violations);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    }<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>  @Override<a name="line.209"></a>
+<span class="sourceLineNo">210</span>  protected void printUsage() {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    String header = "hbase " + PreUpgradeValidator.TOOL_NAME + " " +<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        PreUpgradeValidator.VALIDATE_CP_NAME +<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        " [-jar ...] [-class ... | -table ... | -config]";<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    printUsage(header, "Options:", "");<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>  @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  protected void addOptions() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    addOptNoArg("e", "Treat warnings as errors.");<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    addOptWithArg("jar", "Jar file/directory of the coprocessor.");<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    addOptWithArg("table", "Table coprocessor(s) to check.");<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    addOptWithArg("class", "Coprocessor class(es) to check.");<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    addOptNoArg("config", "Obtain coprocessor class(es) from configuration.");<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>  @Override<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  protected void processOptions(CommandLine cmd) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    String[] jars = cmd.getOptionValues("jar");<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    if (jars != null) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      Collections.addAll(this.jars, jars);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>    String[] tables = cmd.getOptionValues("table");<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    if (tables != null) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      Arrays.stream(tables).map(Pattern::compile).forEach(tablePatterns::add);<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>    String[] classes = cmd.getOptionValues("class");<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    if (classes != null) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      Collections.addAll(this.classes, classes);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>    config = cmd.hasOption("config");<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    dieOnWarnings = cmd.hasOption("e");<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>  private List&lt;URL&gt; buildClasspath(List&lt;String&gt; jars) throws IOException {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    List&lt;URL&gt; urls = new ArrayList&lt;&gt;();<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>    for (String jar : jars) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      Path jarPath = Paths.get(jar);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      if (Files.isDirectory(jarPath)) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        try (Stream&lt;Path&gt; stream = Files.list(jarPath)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>          List&lt;Path&gt; files = stream<a name="line.254"></a>
+<span class="sourceLineNo">255</span>              .filter((path) -&gt; Files.isRegularFile(path))<a name="line.255"></a>
+<span class="sourceLineNo">256</span>              .collect(Collectors.toList());<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>          for (Path file : files) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>            URL url = file.toUri().toURL();<a name="line.259"></a>
+<span class="sourceLineNo">260</span>            urls.add(url);<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>      } else {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        URL url = jarPath.toUri().toURL();<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        urls.add(url);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      }<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>    return urls;<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>  @Override<a name="line.272"></a>
+<span class="sourceLineNo">273</span>  protected int doWork() throws Exception {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    if (tablePatterns.isEmpty() &amp;&amp; classes.isEmpty() &amp;&amp; !config) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      LOG.error("Please give at least one -table, -class or -config parameter.");<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      printUsage();<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      return EXIT_FAILURE;<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>    List&lt;URL&gt; urlList = buildClasspath(jars);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    URL[] urls = urlList.toArray(new URL[urlList.size()]);<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>    LOG.debug("Classpath: {}", urlList);<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>    List&lt;CoprocessorViolation&gt; violations = new ArrayList&lt;&gt;();<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span>    try (ResolverUrlClassLoader classLoader = createClassLoader(urls)) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      for (Pattern tablePattern : tablePatterns) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        validateTables(classLoader, tablePattern, violations);<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>      validateClasses(classLoader, classes, violations);<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span>      if (config) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        String[] masterCoprocessors =<a name="line.295"></a>
+<span class="sourceLineNo">296</span>            getConf().getStrings(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>        if (masterCoprocessors != null) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>          validateClasses(classLoader, masterCoprocessors, violations);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        }<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>        String[] regionCoprocessors =<a name="line.301"></a>
+<span class="sourceLineNo">302</span>            getConf().getStrings(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        if (regionCoprocessors != null) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>          validateClasses(classLoader, regionCoprocessors, violations);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        }<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>    boolean error = false;<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>    for (CoprocessorViolation violation : violations) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>      String className = violation.getClassName();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>      String message = violation.getMessage();<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      Throwable throwable = violation.getThrowable();<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>      switch (violation.getSeverity()) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>        case WARNING:<a name="line.317"></a>
+<span class="sourceLineNo">318</span>          if (throwable == null) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>            LOG.warn("Warning in class '{}': {}.", className, message);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>          } else {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>            LOG.warn("Warning in class '{}': {}.", className, message, throwable);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>          }<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>          if (dieOnWarnings) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>            error = true;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>          }<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>          break;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        case ERROR:<a name="line.329"></a>
+<span class="sourceLineNo">330</span>          if (throwable == null) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>            LOG.error("Error in class '{}': {}.", className, message);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>          } else {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>            LOG.error("Error in class '{}': {}.", className, message, throwable);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>          }<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span>          error = true;<a name="line.336"></a>
+<span class="sourceLineNo">337</span><a name="line.337"></a>
+<span class="sourceLineNo">338</span>          break;<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><a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return (error) ? EXIT_FAILURE : EXIT_SUCCESS;<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>
 
 
 


[08/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html
index 06b90f3..256ed63 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/RegionServerTracker.html
@@ -135,64 +135,63 @@
 <span class="sourceLineNo">127</span>        ServerName serverName = pair.getFirst();<a name="line.127"></a>
 <span class="sourceLineNo">128</span>        RegionServerInfo info = pair.getSecond();<a name="line.128"></a>
 <span class="sourceLineNo">129</span>        regionServers.add(serverName);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>        ServerMetrics serverMetrics = info != null<a name="line.130"></a>
-<span class="sourceLineNo">131</span>          ? ServerMetricsBuilder.of(serverName,<a name="line.131"></a>
-<span class="sourceLineNo">132</span>            VersionInfoUtil.getVersionNumber(info.getVersionInfo()))<a name="line.132"></a>
-<span class="sourceLineNo">133</span>          : ServerMetricsBuilder.of(serverName);<a name="line.133"></a>
-<span class="sourceLineNo">134</span>        serverManager.checkAndRecordNewServer(serverName, serverMetrics);<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      }<a name="line.135"></a>
-<span class="sourceLineNo">136</span>      serverManager.findOutDeadServersAndProcess(deadServersFromPE, liveServersFromWALDir);<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>  public void stop() {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    executor.shutdownNow();<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>  private synchronized void refresh() {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    List&lt;String&gt; names;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    try {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      names = ZKUtil.listChildrenAndWatchForNewChildren(watcher, watcher.getZNodePaths().rsZNode);<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    } catch (KeeperException e) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      // here we need to abort as we failed to set watcher on the rs node which means that we can<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      // not track the node deleted evetnt any more.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      server.abort("Unexpected zk exception getting RS nodes", e);<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      return;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    }<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    Set&lt;ServerName&gt; servers =<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      names.stream().map(ServerName::parseServerName).collect(Collectors.toSet());<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    for (Iterator&lt;ServerName&gt; iter = regionServers.iterator(); iter.hasNext();) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      ServerName sn = iter.next();<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      if (!servers.contains(sn)) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        LOG.info("RegionServer ephemeral node deleted, processing expiration [{}]", sn);<a name="line.159"></a>
-<span class="sourceLineNo">160</span>        serverManager.expireServer(sn);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        iter.remove();<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>    // here we do not need to parse the region server info as it is useless now, we only need the<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    // server name.<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    boolean newServerAdded = false;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    for (ServerName sn : servers) {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      if (regionServers.add(sn)) {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>        newServerAdded = true;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>        LOG.info("RegionServer ephemeral node created, adding [" + sn + "]");<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      }<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    }<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    if (newServerAdded &amp;&amp; server.isInitialized()) {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>      // Only call the check to move servers if a RegionServer was added to the cluster; in this<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      // case it could be a server with a new version so it makes sense to run the check.<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      server.checkIfShouldMoveSystemRegionAsync();<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">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  @Override<a name="line.180"></a>
-<span class="sourceLineNo">181</span>  public void nodeChildrenChanged(String path) {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    if (path.equals(watcher.getZNodePaths().rsZNode) &amp;&amp; !server.isAborted() &amp;&amp;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      !server.isStopped()) {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      executor.execute(this::refresh);<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>}<a name="line.187"></a>
+<span class="sourceLineNo">130</span>        ServerMetrics serverMetrics = info != null ? ServerMetricsBuilder.of(serverName,<a name="line.130"></a>
+<span class="sourceLineNo">131</span>          VersionInfoUtil.getVersionNumber(info.getVersionInfo()),<a name="line.131"></a>
+<span class="sourceLineNo">132</span>          info.getVersionInfo().getVersion()) : ServerMetricsBuilder.of(serverName);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        serverManager.checkAndRecordNewServer(serverName, serverMetrics);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      }<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      serverManager.findOutDeadServersAndProcess(deadServersFromPE, liveServersFromWALDir);<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>  public void stop() {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    executor.shutdownNow();<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>  private synchronized void refresh() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    List&lt;String&gt; names;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    try {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      names = ZKUtil.listChildrenAndWatchForNewChildren(watcher, watcher.getZNodePaths().rsZNode);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    } catch (KeeperException e) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      // here we need to abort as we failed to set watcher on the rs node which means that we can<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      // not track the node deleted evetnt any more.<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      server.abort("Unexpected zk exception getting RS nodes", e);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      return;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    }<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    Set&lt;ServerName&gt; servers =<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      names.stream().map(ServerName::parseServerName).collect(Collectors.toSet());<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    for (Iterator&lt;ServerName&gt; iter = regionServers.iterator(); iter.hasNext();) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      ServerName sn = iter.next();<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      if (!servers.contains(sn)) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        LOG.info("RegionServer ephemeral node deleted, processing expiration [{}]", sn);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        serverManager.expireServer(sn);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        iter.remove();<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>    // here we do not need to parse the region server info as it is useless now, we only need the<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    // server name.<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    boolean newServerAdded = false;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    for (ServerName sn : servers) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      if (regionServers.add(sn)) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        newServerAdded = true;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        LOG.info("RegionServer ephemeral node created, adding [" + sn + "]");<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>    if (newServerAdded &amp;&amp; server.isInitialized()) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>      // Only call the check to move servers if a RegionServer was added to the cluster; in this<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      // case it could be a server with a new version so it makes sense to run the check.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      server.checkIfShouldMoveSystemRegionAsync();<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">179</span>  @Override<a name="line.179"></a>
+<span class="sourceLineNo">180</span>  public void nodeChildrenChanged(String path) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    if (path.equals(watcher.getZNodePaths().rsZNode) &amp;&amp; !server.isAborted() &amp;&amp;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      !server.isStopped()) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      executor.execute(this::refresh);<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>}<a name="line.186"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html
index ba6e4aa..2756f7e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.FlushedSequenceIdFlusher.html
@@ -222,30 +222,30 @@
 <span class="sourceLineNo">214</span>  /**<a name="line.214"></a>
 <span class="sourceLineNo">215</span>   * Let the server manager know a new regionserver has come online<a name="line.215"></a>
 <span class="sourceLineNo">216</span>   * @param request the startup request<a name="line.216"></a>
-<span class="sourceLineNo">217</span>   * @param versionNumber the version of the new regionserver<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   * @param ia the InetAddress from which request is received<a name="line.218"></a>
-<span class="sourceLineNo">219</span>   * @return The ServerName we know this server as.<a name="line.219"></a>
-<span class="sourceLineNo">220</span>   * @throws IOException<a name="line.220"></a>
-<span class="sourceLineNo">221</span>   */<a name="line.221"></a>
-<span class="sourceLineNo">222</span>  ServerName regionServerStartup(RegionServerStartupRequest request, int versionNumber,<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      InetAddress ia) throws IOException {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    // Test for case where we get a region startup message from a regionserver<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    // that has been quickly restarted but whose znode expiration handler has<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    // not yet run, or from a server whose fail we are currently processing.<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    // Test its host+port combo is present in serverAddressToServerInfo.  If it<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    // is, reject the server and trigger its expiration. The next time it comes<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    // in, it should have been removed from serverAddressToServerInfo and queued<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    // for processing by ProcessServerShutdown.<a name="line.230"></a>
-<span class="sourceLineNo">231</span><a name="line.231"></a>
-<span class="sourceLineNo">232</span>    final String hostname = request.hasUseThisHostnameInstead() ?<a name="line.232"></a>
-<span class="sourceLineNo">233</span>        request.getUseThisHostnameInstead() :ia.getHostName();<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    ServerName sn = ServerName.valueOf(hostname, request.getPort(),<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      request.getServerStartCode());<a name="line.235"></a>
+<span class="sourceLineNo">217</span>   * @param versionNumber the version number of the new regionserver<a name="line.217"></a>
+<span class="sourceLineNo">218</span>   * @param version the version of the new regionserver, could contain strings like "SNAPSHOT"<a name="line.218"></a>
+<span class="sourceLineNo">219</span>   * @param ia the InetAddress from which request is received<a name="line.219"></a>
+<span class="sourceLineNo">220</span>   * @return The ServerName we know this server as.<a name="line.220"></a>
+<span class="sourceLineNo">221</span>   * @throws IOException<a name="line.221"></a>
+<span class="sourceLineNo">222</span>   */<a name="line.222"></a>
+<span class="sourceLineNo">223</span>  ServerName regionServerStartup(RegionServerStartupRequest request, int versionNumber,<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      String version, InetAddress ia) throws IOException {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    // Test for case where we get a region startup message from a regionserver<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    // that has been quickly restarted but whose znode expiration handler has<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    // not yet run, or from a server whose fail we are currently processing.<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    // Test its host+port combo is present in serverAddressToServerInfo. If it<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    // is, reject the server and trigger its expiration. The next time it comes<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    // in, it should have been removed from serverAddressToServerInfo and queued<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    // for processing by ProcessServerShutdown.<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>    final String hostname =<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      request.hasUseThisHostnameInstead() ? request.getUseThisHostnameInstead() : ia.getHostName();<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    ServerName sn = ServerName.valueOf(hostname, request.getPort(), request.getServerStartCode());<a name="line.235"></a>
 <span class="sourceLineNo">236</span>    checkClockSkew(sn, request.getServerCurrentTime());<a name="line.236"></a>
 <span class="sourceLineNo">237</span>    checkIsDead(sn, "STARTUP");<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    if (!checkAndRecordNewServer(sn, ServerMetricsBuilder.of(sn, versionNumber))) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      LOG.warn("THIS SHOULD NOT HAPPEN, RegionServerStartup"<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        + " could not record the server: " + sn);<a name="line.240"></a>
+<span class="sourceLineNo">238</span>    if (!checkAndRecordNewServer(sn, ServerMetricsBuilder.of(sn, versionNumber, version))) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      LOG.warn(<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        "THIS SHOULD NOT HAPPEN, RegionServerStartup" + " could not record the server: " + sn);<a name="line.240"></a>
 <span class="sourceLineNo">241</span>    }<a name="line.241"></a>
 <span class="sourceLineNo">242</span>    return sn;<a name="line.242"></a>
 <span class="sourceLineNo">243</span>  }<a name="line.243"></a>
@@ -1029,155 +1029,163 @@
 <span class="sourceLineNo">1021</span>  /**<a name="line.1021"></a>
 <span class="sourceLineNo">1022</span>   * May return 0 when server is not online.<a name="line.1022"></a>
 <span class="sourceLineNo">1023</span>   */<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>  public int getServerVersion(final ServerName serverName) {<a name="line.1024"></a>
+<span class="sourceLineNo">1024</span>  public int getVersionNumber(ServerName serverName) {<a name="line.1024"></a>
 <span class="sourceLineNo">1025</span>    ServerMetrics serverMetrics = onlineServers.get(serverName);<a name="line.1025"></a>
 <span class="sourceLineNo">1026</span>    return serverMetrics != null ? serverMetrics.getVersionNumber() : 0;<a name="line.1026"></a>
 <span class="sourceLineNo">1027</span>  }<a name="line.1027"></a>
 <span class="sourceLineNo">1028</span><a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>  public int getInfoPort(ServerName serverName) {<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>    ServerMetrics serverMetrics = onlineServers.get(serverName);<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>    return serverMetrics != null ? serverMetrics.getInfoServerPort() : 0;<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>  }<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span><a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>  /**<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>   * Persist last flushed sequence id of each region to HDFS<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>   * @throws IOException if persit to HDFS fails<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>   */<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  private void persistRegionLastFlushedSequenceIds() throws IOException {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>    if (isFlushSeqIdPersistInProgress) {<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>      return;<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>    isFlushSeqIdPersistInProgress = true;<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    try {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>      Configuration conf = master.getConfiguration();<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>      Path rootDir = FSUtils.getRootDir(conf);<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>      Path lastFlushedSeqIdPath = new Path(rootDir, LAST_FLUSHED_SEQ_ID_FILE);<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>      FileSystem fs = FileSystem.get(conf);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>      if (fs.exists(lastFlushedSeqIdPath)) {<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>        LOG.info("Rewriting .lastflushedseqids file at: "<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>            + lastFlushedSeqIdPath);<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>        if (!fs.delete(lastFlushedSeqIdPath, false)) {<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>          throw new IOException("Unable to remove existing "<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>              + lastFlushedSeqIdPath);<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        }<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>      } else {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>        LOG.info("Writing .lastflushedseqids file at: " + lastFlushedSeqIdPath);<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>      }<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>      FSDataOutputStream out = fs.create(lastFlushedSeqIdPath);<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>      FlushedSequenceId.Builder flushedSequenceIdBuilder =<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>          FlushedSequenceId.newBuilder();<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>      try {<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>        for (Entry&lt;byte[], Long&gt; entry : flushedSequenceIdByRegion.entrySet()) {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>          FlushedRegionSequenceId.Builder flushedRegionSequenceIdBuilder =<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>              FlushedRegionSequenceId.newBuilder();<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>          flushedRegionSequenceIdBuilder.setRegionEncodedName(<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>              ByteString.copyFrom(entry.getKey()));<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>          flushedRegionSequenceIdBuilder.setSeqId(entry.getValue());<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>          ConcurrentNavigableMap&lt;byte[], Long&gt; storeSeqIds =<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>              storeFlushedSequenceIdsByRegion.get(entry.getKey());<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>          if (storeSeqIds != null) {<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>            for (Entry&lt;byte[], Long&gt; store : storeSeqIds.entrySet()) {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>              FlushedStoreSequenceId.Builder flushedStoreSequenceIdBuilder =<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>                  FlushedStoreSequenceId.newBuilder();<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>              flushedStoreSequenceIdBuilder.setFamily(ByteString.copyFrom(store.getKey()));<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>              flushedStoreSequenceIdBuilder.setSeqId(store.getValue());<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>              flushedRegionSequenceIdBuilder.addStores(flushedStoreSequenceIdBuilder);<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>            }<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>          }<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>          flushedSequenceIdBuilder.addRegionSequenceId(flushedRegionSequenceIdBuilder);<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>        }<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>        flushedSequenceIdBuilder.build().writeDelimitedTo(out);<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>      } finally {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>        if (out != null) {<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>          out.close();<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        }<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>      }<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>    } finally {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      isFlushSeqIdPersistInProgress = false;<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>  }<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span><a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>  /**<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>   * Load last flushed sequence id of each region from HDFS, if persisted<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>   */<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>  public void loadLastFlushedSequenceIds() throws IOException {<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>    if (!persistFlushedSequenceId) {<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>      return;<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    }<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>    Configuration conf = master.getConfiguration();<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>    Path rootDir = FSUtils.getRootDir(conf);<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    Path lastFlushedSeqIdPath = new Path(rootDir, LAST_FLUSHED_SEQ_ID_FILE);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    FileSystem fs = FileSystem.get(conf);<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    if (!fs.exists(lastFlushedSeqIdPath)) {<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>      LOG.info("No .lastflushedseqids found at" + lastFlushedSeqIdPath<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>          + " will record last flushed sequence id"<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>          + " for regions by regionserver report all over again");<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>      return;<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>    } else {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>      LOG.info("begin to load .lastflushedseqids at " + lastFlushedSeqIdPath);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>    }<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>    FSDataInputStream in = fs.open(lastFlushedSeqIdPath);<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    try {<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      FlushedSequenceId flushedSequenceId =<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>          FlushedSequenceId.parseDelimitedFrom(in);<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>      for (FlushedRegionSequenceId flushedRegionSequenceId : flushedSequenceId<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>          .getRegionSequenceIdList()) {<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>        byte[] encodedRegionName = flushedRegionSequenceId<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>            .getRegionEncodedName().toByteArray();<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>        flushedSequenceIdByRegion<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>            .putIfAbsent(encodedRegionName, flushedRegionSequenceId.getSeqId());<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>        if (flushedRegionSequenceId.getStoresList() != null<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>            &amp;&amp; flushedRegionSequenceId.getStoresList().size() != 0) {<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>          ConcurrentNavigableMap&lt;byte[], Long&gt; storeFlushedSequenceId =<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>              computeIfAbsent(storeFlushedSequenceIdsByRegion, encodedRegionName,<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>                () -&gt; new ConcurrentSkipListMap&lt;&gt;(Bytes.BYTES_COMPARATOR));<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>          for (FlushedStoreSequenceId flushedStoreSequenceId : flushedRegionSequenceId<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>              .getStoresList()) {<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>            storeFlushedSequenceId<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>                .put(flushedStoreSequenceId.getFamily().toByteArray(),<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>                    flushedStoreSequenceId.getSeqId());<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>          }<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>        }<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>      }<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>    } finally {<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>      in.close();<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>    }<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>  }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span><a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  /**<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>   * Regions may have been removed between latest persist of FlushedSequenceIds<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>   * and master abort. So after loading FlushedSequenceIds from file, and after<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>   * meta loaded, we need to remove the deleted region according to RegionStates.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>   */<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>  public void removeDeletedRegionFromLoadedFlushedSequenceIds() {<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    RegionStates regionStates = master.getAssignmentManager().getRegionStates();<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>    Iterator&lt;byte[]&gt; it = flushedSequenceIdByRegion.keySet().iterator();<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>    while(it.hasNext()) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>      byte[] regionEncodedName = it.next();<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>      if (regionStates.getRegionState(Bytes.toStringBinary(regionEncodedName)) == null) {<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>        it.remove();<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>        storeFlushedSequenceIdsByRegion.remove(regionEncodedName);<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>      }<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>    }<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>  }<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span><a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>  private class FlushedSequenceIdFlusher extends ScheduledChore {<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span><a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>    public FlushedSequenceIdFlusher(String name, int p) {<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>      super(name, master, p, 60 * 1000); //delay one minute before first execute<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>    }<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span><a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>    @Override<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    protected void chore() {<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>      try {<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>        persistRegionLastFlushedSequenceIds();<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>      } catch (IOException e) {<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>        LOG.debug("Failed to persist last flushed sequence id of regions"<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>            + " to file system", e);<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>      }<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>    }<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>  }<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>}<a name="line.1172"></a>
+<span class="sourceLineNo">1029</span>  /**<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>   * May return "0.0.0" when server is not online<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>   */<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>  public String getVersion(ServerName serverName) {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>    ServerMetrics serverMetrics = onlineServers.get(serverName);<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>    return serverMetrics != null ? serverMetrics.getVersion() : "0.0.0";<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>  }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>  public int getInfoPort(ServerName serverName) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>    ServerMetrics serverMetrics = onlineServers.get(serverName);<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>    return serverMetrics != null ? serverMetrics.getInfoServerPort() : 0;<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>  }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span><a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>  /**<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>   * Persist last flushed sequence id of each region to HDFS<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>   * @throws IOException if persit to HDFS fails<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>   */<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>  private void persistRegionLastFlushedSequenceIds() throws IOException {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>    if (isFlushSeqIdPersistInProgress) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      return;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>    }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>    isFlushSeqIdPersistInProgress = true;<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>    try {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>      Configuration conf = master.getConfiguration();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      Path rootDir = FSUtils.getRootDir(conf);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      Path lastFlushedSeqIdPath = new Path(rootDir, LAST_FLUSHED_SEQ_ID_FILE);<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>      FileSystem fs = FileSystem.get(conf);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>      if (fs.exists(lastFlushedSeqIdPath)) {<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>        LOG.info("Rewriting .lastflushedseqids file at: "<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>            + lastFlushedSeqIdPath);<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        if (!fs.delete(lastFlushedSeqIdPath, false)) {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>          throw new IOException("Unable to remove existing "<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>              + lastFlushedSeqIdPath);<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>        }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      } else {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        LOG.info("Writing .lastflushedseqids file at: " + lastFlushedSeqIdPath);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>      }<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      FSDataOutputStream out = fs.create(lastFlushedSeqIdPath);<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>      FlushedSequenceId.Builder flushedSequenceIdBuilder =<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>          FlushedSequenceId.newBuilder();<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      try {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>        for (Entry&lt;byte[], Long&gt; entry : flushedSequenceIdByRegion.entrySet()) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>          FlushedRegionSequenceId.Builder flushedRegionSequenceIdBuilder =<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>              FlushedRegionSequenceId.newBuilder();<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>          flushedRegionSequenceIdBuilder.setRegionEncodedName(<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>              ByteString.copyFrom(entry.getKey()));<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>          flushedRegionSequenceIdBuilder.setSeqId(entry.getValue());<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>          ConcurrentNavigableMap&lt;byte[], Long&gt; storeSeqIds =<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>              storeFlushedSequenceIdsByRegion.get(entry.getKey());<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>          if (storeSeqIds != null) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>            for (Entry&lt;byte[], Long&gt; store : storeSeqIds.entrySet()) {<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>              FlushedStoreSequenceId.Builder flushedStoreSequenceIdBuilder =<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                  FlushedStoreSequenceId.newBuilder();<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>              flushedStoreSequenceIdBuilder.setFamily(ByteString.copyFrom(store.getKey()));<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>              flushedStoreSequenceIdBuilder.setSeqId(store.getValue());<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>              flushedRegionSequenceIdBuilder.addStores(flushedStoreSequenceIdBuilder);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>            }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>          }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>          flushedSequenceIdBuilder.addRegionSequenceId(flushedRegionSequenceIdBuilder);<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        }<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>        flushedSequenceIdBuilder.build().writeDelimitedTo(out);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>      } finally {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>        if (out != null) {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>          out.close();<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>        }<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>      }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>    } finally {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>      isFlushSeqIdPersistInProgress = false;<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>    }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>  }<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span><a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>  /**<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>   * Load last flushed sequence id of each region from HDFS, if persisted<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>   */<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>  public void loadLastFlushedSequenceIds() throws IOException {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>    if (!persistFlushedSequenceId) {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>      return;<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>    }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    Configuration conf = master.getConfiguration();<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>    Path rootDir = FSUtils.getRootDir(conf);<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    Path lastFlushedSeqIdPath = new Path(rootDir, LAST_FLUSHED_SEQ_ID_FILE);<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>    FileSystem fs = FileSystem.get(conf);<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>    if (!fs.exists(lastFlushedSeqIdPath)) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      LOG.info("No .lastflushedseqids found at" + lastFlushedSeqIdPath<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>          + " will record last flushed sequence id"<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>          + " for regions by regionserver report all over again");<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>      return;<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>    } else {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>      LOG.info("begin to load .lastflushedseqids at " + lastFlushedSeqIdPath);<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>    }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    FSDataInputStream in = fs.open(lastFlushedSeqIdPath);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>    try {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      FlushedSequenceId flushedSequenceId =<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>          FlushedSequenceId.parseDelimitedFrom(in);<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>      for (FlushedRegionSequenceId flushedRegionSequenceId : flushedSequenceId<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>          .getRegionSequenceIdList()) {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>        byte[] encodedRegionName = flushedRegionSequenceId<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>            .getRegionEncodedName().toByteArray();<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>        flushedSequenceIdByRegion<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>            .putIfAbsent(encodedRegionName, flushedRegionSequenceId.getSeqId());<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>        if (flushedRegionSequenceId.getStoresList() != null<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>            &amp;&amp; flushedRegionSequenceId.getStoresList().size() != 0) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>          ConcurrentNavigableMap&lt;byte[], Long&gt; storeFlushedSequenceId =<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>              computeIfAbsent(storeFlushedSequenceIdsByRegion, encodedRegionName,<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                () -&gt; new ConcurrentSkipListMap&lt;&gt;(Bytes.BYTES_COMPARATOR));<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>          for (FlushedStoreSequenceId flushedStoreSequenceId : flushedRegionSequenceId<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>              .getStoresList()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>            storeFlushedSequenceId<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                .put(flushedStoreSequenceId.getFamily().toByteArray(),<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                    flushedStoreSequenceId.getSeqId());<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>          }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>      }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    } finally {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>      in.close();<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>    }<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>  }<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span><a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>  /**<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>   * Regions may have been removed between latest persist of FlushedSequenceIds<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>   * and master abort. So after loading FlushedSequenceIds from file, and after<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>   * meta loaded, we need to remove the deleted region according to RegionStates.<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>   */<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>  public void removeDeletedRegionFromLoadedFlushedSequenceIds() {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>    RegionStates regionStates = master.getAssignmentManager().getRegionStates();<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    Iterator&lt;byte[]&gt; it = flushedSequenceIdByRegion.keySet().iterator();<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>    while(it.hasNext()) {<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>      byte[] regionEncodedName = it.next();<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>      if (regionStates.getRegionState(Bytes.toStringBinary(regionEncodedName)) == null) {<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>        it.remove();<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>        storeFlushedSequenceIdsByRegion.remove(regionEncodedName);<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>      }<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>    }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>  }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span><a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>  private class FlushedSequenceIdFlusher extends ScheduledChore {<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span><a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>    public FlushedSequenceIdFlusher(String name, int p) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>      super(name, master, p, 60 * 1000); //delay one minute before first execute<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    }<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span><a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    @Override<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    protected void chore() {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>      try {<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>        persistRegionLastFlushedSequenceIds();<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>      } catch (IOException e) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>        LOG.debug("Failed to persist last flushed sequence id of regions"<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>            + " to file system", e);<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>      }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>    }<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>  }<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>}<a name="line.1180"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.html
index ba6e4aa..2756f7e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/ServerManager.html
@@ -222,30 +222,30 @@
 <span class="sourceLineNo">214</span>  /**<a name="line.214"></a>
 <span class="sourceLineNo">215</span>   * Let the server manager know a new regionserver has come online<a name="line.215"></a>
 <span class="sourceLineNo">216</span>   * @param request the startup request<a name="line.216"></a>
-<span class="sourceLineNo">217</span>   * @param versionNumber the version of the new regionserver<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   * @param ia the InetAddress from which request is received<a name="line.218"></a>
-<span class="sourceLineNo">219</span>   * @return The ServerName we know this server as.<a name="line.219"></a>
-<span class="sourceLineNo">220</span>   * @throws IOException<a name="line.220"></a>
-<span class="sourceLineNo">221</span>   */<a name="line.221"></a>
-<span class="sourceLineNo">222</span>  ServerName regionServerStartup(RegionServerStartupRequest request, int versionNumber,<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      InetAddress ia) throws IOException {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    // Test for case where we get a region startup message from a regionserver<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    // that has been quickly restarted but whose znode expiration handler has<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    // not yet run, or from a server whose fail we are currently processing.<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    // Test its host+port combo is present in serverAddressToServerInfo.  If it<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    // is, reject the server and trigger its expiration. The next time it comes<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    // in, it should have been removed from serverAddressToServerInfo and queued<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    // for processing by ProcessServerShutdown.<a name="line.230"></a>
-<span class="sourceLineNo">231</span><a name="line.231"></a>
-<span class="sourceLineNo">232</span>    final String hostname = request.hasUseThisHostnameInstead() ?<a name="line.232"></a>
-<span class="sourceLineNo">233</span>        request.getUseThisHostnameInstead() :ia.getHostName();<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    ServerName sn = ServerName.valueOf(hostname, request.getPort(),<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      request.getServerStartCode());<a name="line.235"></a>
+<span class="sourceLineNo">217</span>   * @param versionNumber the version number of the new regionserver<a name="line.217"></a>
+<span class="sourceLineNo">218</span>   * @param version the version of the new regionserver, could contain strings like "SNAPSHOT"<a name="line.218"></a>
+<span class="sourceLineNo">219</span>   * @param ia the InetAddress from which request is received<a name="line.219"></a>
+<span class="sourceLineNo">220</span>   * @return The ServerName we know this server as.<a name="line.220"></a>
+<span class="sourceLineNo">221</span>   * @throws IOException<a name="line.221"></a>
+<span class="sourceLineNo">222</span>   */<a name="line.222"></a>
+<span class="sourceLineNo">223</span>  ServerName regionServerStartup(RegionServerStartupRequest request, int versionNumber,<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      String version, InetAddress ia) throws IOException {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    // Test for case where we get a region startup message from a regionserver<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    // that has been quickly restarted but whose znode expiration handler has<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    // not yet run, or from a server whose fail we are currently processing.<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    // Test its host+port combo is present in serverAddressToServerInfo. If it<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    // is, reject the server and trigger its expiration. The next time it comes<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    // in, it should have been removed from serverAddressToServerInfo and queued<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    // for processing by ProcessServerShutdown.<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>    final String hostname =<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      request.hasUseThisHostnameInstead() ? request.getUseThisHostnameInstead() : ia.getHostName();<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    ServerName sn = ServerName.valueOf(hostname, request.getPort(), request.getServerStartCode());<a name="line.235"></a>
 <span class="sourceLineNo">236</span>    checkClockSkew(sn, request.getServerCurrentTime());<a name="line.236"></a>
 <span class="sourceLineNo">237</span>    checkIsDead(sn, "STARTUP");<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    if (!checkAndRecordNewServer(sn, ServerMetricsBuilder.of(sn, versionNumber))) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      LOG.warn("THIS SHOULD NOT HAPPEN, RegionServerStartup"<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        + " could not record the server: " + sn);<a name="line.240"></a>
+<span class="sourceLineNo">238</span>    if (!checkAndRecordNewServer(sn, ServerMetricsBuilder.of(sn, versionNumber, version))) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      LOG.warn(<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        "THIS SHOULD NOT HAPPEN, RegionServerStartup" + " could not record the server: " + sn);<a name="line.240"></a>
 <span class="sourceLineNo">241</span>    }<a name="line.241"></a>
 <span class="sourceLineNo">242</span>    return sn;<a name="line.242"></a>
 <span class="sourceLineNo">243</span>  }<a name="line.243"></a>
@@ -1029,155 +1029,163 @@
 <span class="sourceLineNo">1021</span>  /**<a name="line.1021"></a>
 <span class="sourceLineNo">1022</span>   * May return 0 when server is not online.<a name="line.1022"></a>
 <span class="sourceLineNo">1023</span>   */<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>  public int getServerVersion(final ServerName serverName) {<a name="line.1024"></a>
+<span class="sourceLineNo">1024</span>  public int getVersionNumber(ServerName serverName) {<a name="line.1024"></a>
 <span class="sourceLineNo">1025</span>    ServerMetrics serverMetrics = onlineServers.get(serverName);<a name="line.1025"></a>
 <span class="sourceLineNo">1026</span>    return serverMetrics != null ? serverMetrics.getVersionNumber() : 0;<a name="line.1026"></a>
 <span class="sourceLineNo">1027</span>  }<a name="line.1027"></a>
 <span class="sourceLineNo">1028</span><a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>  public int getInfoPort(ServerName serverName) {<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>    ServerMetrics serverMetrics = onlineServers.get(serverName);<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>    return serverMetrics != null ? serverMetrics.getInfoServerPort() : 0;<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>  }<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span><a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>  /**<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>   * Persist last flushed sequence id of each region to HDFS<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>   * @throws IOException if persit to HDFS fails<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>   */<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  private void persistRegionLastFlushedSequenceIds() throws IOException {<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>    if (isFlushSeqIdPersistInProgress) {<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>      return;<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>    isFlushSeqIdPersistInProgress = true;<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    try {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>      Configuration conf = master.getConfiguration();<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>      Path rootDir = FSUtils.getRootDir(conf);<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>      Path lastFlushedSeqIdPath = new Path(rootDir, LAST_FLUSHED_SEQ_ID_FILE);<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>      FileSystem fs = FileSystem.get(conf);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>      if (fs.exists(lastFlushedSeqIdPath)) {<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>        LOG.info("Rewriting .lastflushedseqids file at: "<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>            + lastFlushedSeqIdPath);<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>        if (!fs.delete(lastFlushedSeqIdPath, false)) {<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>          throw new IOException("Unable to remove existing "<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>              + lastFlushedSeqIdPath);<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        }<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>      } else {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>        LOG.info("Writing .lastflushedseqids file at: " + lastFlushedSeqIdPath);<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>      }<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>      FSDataOutputStream out = fs.create(lastFlushedSeqIdPath);<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>      FlushedSequenceId.Builder flushedSequenceIdBuilder =<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>          FlushedSequenceId.newBuilder();<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>      try {<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>        for (Entry&lt;byte[], Long&gt; entry : flushedSequenceIdByRegion.entrySet()) {<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>          FlushedRegionSequenceId.Builder flushedRegionSequenceIdBuilder =<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>              FlushedRegionSequenceId.newBuilder();<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>          flushedRegionSequenceIdBuilder.setRegionEncodedName(<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>              ByteString.copyFrom(entry.getKey()));<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>          flushedRegionSequenceIdBuilder.setSeqId(entry.getValue());<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>          ConcurrentNavigableMap&lt;byte[], Long&gt; storeSeqIds =<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>              storeFlushedSequenceIdsByRegion.get(entry.getKey());<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>          if (storeSeqIds != null) {<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>            for (Entry&lt;byte[], Long&gt; store : storeSeqIds.entrySet()) {<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>              FlushedStoreSequenceId.Builder flushedStoreSequenceIdBuilder =<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>                  FlushedStoreSequenceId.newBuilder();<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>              flushedStoreSequenceIdBuilder.setFamily(ByteString.copyFrom(store.getKey()));<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>              flushedStoreSequenceIdBuilder.setSeqId(store.getValue());<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>              flushedRegionSequenceIdBuilder.addStores(flushedStoreSequenceIdBuilder);<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>            }<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>          }<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>          flushedSequenceIdBuilder.addRegionSequenceId(flushedRegionSequenceIdBuilder);<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>        }<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>        flushedSequenceIdBuilder.build().writeDelimitedTo(out);<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>      } finally {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>        if (out != null) {<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>          out.close();<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        }<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>      }<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>    } finally {<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      isFlushSeqIdPersistInProgress = false;<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>  }<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span><a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>  /**<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>   * Load last flushed sequence id of each region from HDFS, if persisted<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>   */<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>  public void loadLastFlushedSequenceIds() throws IOException {<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>    if (!persistFlushedSequenceId) {<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>      return;<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    }<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>    Configuration conf = master.getConfiguration();<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>    Path rootDir = FSUtils.getRootDir(conf);<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    Path lastFlushedSeqIdPath = new Path(rootDir, LAST_FLUSHED_SEQ_ID_FILE);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    FileSystem fs = FileSystem.get(conf);<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    if (!fs.exists(lastFlushedSeqIdPath)) {<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>      LOG.info("No .lastflushedseqids found at" + lastFlushedSeqIdPath<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>          + " will record last flushed sequence id"<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>          + " for regions by regionserver report all over again");<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>      return;<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>    } else {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>      LOG.info("begin to load .lastflushedseqids at " + lastFlushedSeqIdPath);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>    }<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>    FSDataInputStream in = fs.open(lastFlushedSeqIdPath);<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    try {<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      FlushedSequenceId flushedSequenceId =<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>          FlushedSequenceId.parseDelimitedFrom(in);<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>      for (FlushedRegionSequenceId flushedRegionSequenceId : flushedSequenceId<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>          .getRegionSequenceIdList()) {<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>        byte[] encodedRegionName = flushedRegionSequenceId<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>            .getRegionEncodedName().toByteArray();<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>        flushedSequenceIdByRegion<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>            .putIfAbsent(encodedRegionName, flushedRegionSequenceId.getSeqId());<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>        if (flushedRegionSequenceId.getStoresList() != null<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>            &amp;&amp; flushedRegionSequenceId.getStoresList().size() != 0) {<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>          ConcurrentNavigableMap&lt;byte[], Long&gt; storeFlushedSequenceId =<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>              computeIfAbsent(storeFlushedSequenceIdsByRegion, encodedRegionName,<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>                () -&gt; new ConcurrentSkipListMap&lt;&gt;(Bytes.BYTES_COMPARATOR));<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span>          for (FlushedStoreSequenceId flushedStoreSequenceId : flushedRegionSequenceId<a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>              .getStoresList()) {<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>            storeFlushedSequenceId<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>                .put(flushedStoreSequenceId.getFamily().toByteArray(),<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>                    flushedStoreSequenceId.getSeqId());<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>          }<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>        }<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>      }<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>    } finally {<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>      in.close();<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>    }<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>  }<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span><a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>  /**<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>   * Regions may have been removed between latest persist of FlushedSequenceIds<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>   * and master abort. So after loading FlushedSequenceIds from file, and after<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>   * meta loaded, we need to remove the deleted region according to RegionStates.<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>   */<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>  public void removeDeletedRegionFromLoadedFlushedSequenceIds() {<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>    RegionStates regionStates = master.getAssignmentManager().getRegionStates();<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>    Iterator&lt;byte[]&gt; it = flushedSequenceIdByRegion.keySet().iterator();<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>    while(it.hasNext()) {<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>      byte[] regionEncodedName = it.next();<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>      if (regionStates.getRegionState(Bytes.toStringBinary(regionEncodedName)) == null) {<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>        it.remove();<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>        storeFlushedSequenceIdsByRegion.remove(regionEncodedName);<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>      }<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>    }<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>  }<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span><a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>  private class FlushedSequenceIdFlusher extends ScheduledChore {<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span><a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>    public FlushedSequenceIdFlusher(String name, int p) {<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>      super(name, master, p, 60 * 1000); //delay one minute before first execute<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>    }<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span><a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>    @Override<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>    protected void chore() {<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>      try {<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>        persistRegionLastFlushedSequenceIds();<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>      } catch (IOException e) {<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>        LOG.debug("Failed to persist last flushed sequence id of regions"<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>            + " to file system", e);<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>      }<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>    }<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>  }<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>}<a name="line.1172"></a>
+<span class="sourceLineNo">1029</span>  /**<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>   * May return "0.0.0" when server is not online<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>   */<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>  public String getVersion(ServerName serverName) {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>    ServerMetrics serverMetrics = onlineServers.get(serverName);<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>    return serverMetrics != null ? serverMetrics.getVersion() : "0.0.0";<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>  }<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>  public int getInfoPort(ServerName serverName) {<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>    ServerMetrics serverMetrics = onlineServers.get(serverName);<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>    return serverMetrics != null ? serverMetrics.getInfoServerPort() : 0;<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>  }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span><a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>  /**<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>   * Persist last flushed sequence id of each region to HDFS<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>   * @throws IOException if persit to HDFS fails<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>   */<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>  private void persistRegionLastFlushedSequenceIds() throws IOException {<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>    if (isFlushSeqIdPersistInProgress) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      return;<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>    }<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>    isFlushSeqIdPersistInProgress = true;<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>    try {<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>      Configuration conf = master.getConfiguration();<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>      Path rootDir = FSUtils.getRootDir(conf);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      Path lastFlushedSeqIdPath = new Path(rootDir, LAST_FLUSHED_SEQ_ID_FILE);<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>      FileSystem fs = FileSystem.get(conf);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>      if (fs.exists(lastFlushedSeqIdPath)) {<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>        LOG.info("Rewriting .lastflushedseqids file at: "<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>            + lastFlushedSeqIdPath);<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        if (!fs.delete(lastFlushedSeqIdPath, false)) {<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>          throw new IOException("Unable to remove existing "<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>              + lastFlushedSeqIdPath);<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>        }<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      } else {<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>        LOG.info("Writing .lastflushedseqids file at: " + lastFlushedSeqIdPath);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>      }<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      FSDataOutputStream out = fs.create(lastFlushedSeqIdPath);<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>      FlushedSequenceId.Builder flushedSequenceIdBuilder =<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>          FlushedSequenceId.newBuilder();<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      try {<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>        for (Entry&lt;byte[], Long&gt; entry : flushedSequenceIdByRegion.entrySet()) {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>          FlushedRegionSequenceId.Builder flushedRegionSequenceIdBuilder =<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>              FlushedRegionSequenceId.newBuilder();<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>          flushedRegionSequenceIdBuilder.setRegionEncodedName(<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>              ByteString.copyFrom(entry.getKey()));<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>          flushedRegionSequenceIdBuilder.setSeqId(entry.getValue());<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>          ConcurrentNavigableMap&lt;byte[], Long&gt; storeSeqIds =<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>              storeFlushedSequenceIdsByRegion.get(entry.getKey());<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>          if (storeSeqIds != null) {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>            for (Entry&lt;byte[], Long&gt; store : storeSeqIds.entrySet()) {<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>              FlushedStoreSequenceId.Builder flushedStoreSequenceIdBuilder =<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>                  FlushedStoreSequenceId.newBuilder();<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>              flushedStoreSequenceIdBuilder.setFamily(ByteString.copyFrom(store.getKey()));<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>              flushedStoreSequenceIdBuilder.setSeqId(store.getValue());<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>              flushedRegionSequenceIdBuilder.addStores(flushedStoreSequenceIdBuilder);<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>            }<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>          }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>          flushedSequenceIdBuilder.addRegionSequenceId(flushedRegionSequenceIdBuilder);<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        }<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>        flushedSequenceIdBuilder.build().writeDelimitedTo(out);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>      } finally {<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>        if (out != null) {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>          out.close();<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>        }<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>      }<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>    } finally {<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>      isFlushSeqIdPersistInProgress = false;<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>    }<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>  }<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span><a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>  /**<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>   * Load last flushed sequence id of each region from HDFS, if persisted<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>   */<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>  public void loadLastFlushedSequenceIds() throws IOException {<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>    if (!persistFlushedSequenceId) {<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>      return;<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>    }<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    Configuration conf = master.getConfiguration();<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>    Path rootDir = FSUtils.getRootDir(conf);<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    Path lastFlushedSeqIdPath = new Path(rootDir, LAST_FLUSHED_SEQ_ID_FILE);<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>    FileSystem fs = FileSystem.get(conf);<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>    if (!fs.exists(lastFlushedSeqIdPath)) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      LOG.info("No .lastflushedseqids found at" + lastFlushedSeqIdPath<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>          + " will record last flushed sequence id"<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>          + " for regions by regionserver report all over again");<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>      return;<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>    } else {<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>      LOG.info("begin to load .lastflushedseqids at " + lastFlushedSeqIdPath);<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>    }<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>    FSDataInputStream in = fs.open(lastFlushedSeqIdPath);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>    try {<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>      FlushedSequenceId flushedSequenceId =<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>          FlushedSequenceId.parseDelimitedFrom(in);<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>      for (FlushedRegionSequenceId flushedRegionSequenceId : flushedSequenceId<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>          .getRegionSequenceIdList()) {<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>        byte[] encodedRegionName = flushedRegionSequenceId<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>            .getRegionEncodedName().toByteArray();<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span>        flushedSequenceIdByRegion<a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>            .putIfAbsent(encodedRegionName, flushedRegionSequenceId.getSeqId());<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>        if (flushedRegionSequenceId.getStoresList() != null<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>            &amp;&amp; flushedRegionSequenceId.getStoresList().size() != 0) {<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>          ConcurrentNavigableMap&lt;byte[], Long&gt; storeFlushedSequenceId =<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>              computeIfAbsent(storeFlushedSequenceIdsByRegion, encodedRegionName,<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>                () -&gt; new ConcurrentSkipListMap&lt;&gt;(Bytes.BYTES_COMPARATOR));<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>          for (FlushedStoreSequenceId flushedStoreSequenceId : flushedRegionSequenceId<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>              .getStoresList()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>            storeFlushedSequenceId<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>                .put(flushedStoreSequenceId.getFamily().toByteArray(),<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>                    flushedStoreSequenceId.getSeqId());<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>          }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>        }<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>      }<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>    } finally {<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>      in.close();<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>    }<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>  }<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span><a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>  /**<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>   * Regions may have been removed between latest persist of FlushedSequenceIds<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>   * and master abort. So after loading FlushedSequenceIds from file, and after<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>   * meta loaded, we need to remove the deleted region according to RegionStates.<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>   */<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>  public void removeDeletedRegionFromLoadedFlushedSequenceIds() {<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>    RegionStates regionStates = master.getAssignmentManager().getRegionStates();<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    Iterator&lt;byte[]&gt; it = flushedSequenceIdByRegion.keySet().iterator();<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>    while(it.hasNext()) {<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>      byte[] regionEncodedName = it.next();<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>      if (regionStates.getRegionState(Bytes.toStringBinary(regionEncodedName)) == null) {<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>        it.remove();<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>        storeFlushedSequenceIdsByRegion.remove(regionEncodedName);<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>      }<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>    }<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>  }<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span><a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>  private class FlushedSequenceIdFlusher extends ScheduledChore {<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span><a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>    public FlushedSequenceIdFlusher(String name, int p) {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>      super(name, master, p, 60 * 1000); //delay one minute before first execute<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>    }<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span><a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>    @Override<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>    protected void chore() {<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>      try {<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>        persistRegionLastFlushedSequenceIds();<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>      } catch (IOException e) {<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>        LOG.debug("Failed to persist last flushed sequence id of regions"<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>            + " to file system", e);<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>      }<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>    }<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>  }<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>}<a name="line.1180"></a>
 
 
 


[13/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
index a5d418c..95f2a65 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
@@ -96,3682 +96,3680 @@
 <span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.88"></a>
 <span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.89"></a>
 <span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.exceptions.MergeRegionException;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.master.MasterRpcServices.BalanceSwitchMode;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.master.assignment.AssignmentManager;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.master.assignment.MergeTableRegionsProcedure;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.master.assignment.RegionStates;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.master.balancer.BalancerChore;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.master.balancer.ClusterStatusChore;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.master.cleaner.CleanerChore;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.master.cleaner.HFileCleaner;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.master.cleaner.LogCleaner;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.master.cleaner.ReplicationBarrierCleaner;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.master.locking.LockManager;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan.PlanType;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerFactory;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.master.procedure.CreateTableProcedure;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.master.procedure.DeleteNamespaceProcedure;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.master.procedure.DisableTableProcedure;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.master.procedure.EnableTableProcedure;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.master.procedure.InitMetaProcedure;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.master.procedure.ModifyTableProcedure;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.master.procedure.ProcedurePrepareLatch;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.master.procedure.ServerCrashProcedure;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.master.procedure.TruncateTableProcedure;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.master.replication.AbstractPeerProcedure;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.master.replication.AddPeerProcedure;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.master.replication.DisablePeerProcedure;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.master.replication.EnablePeerProcedure;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.master.replication.RemovePeerProcedure;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.master.replication.ReplicationPeerManager;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.master.replication.SyncReplicationReplayWALManager;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.master.replication.TransitPeerSyncReplicationStateProcedure;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.master.replication.UpdatePeerConfigProcedure;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.master.snapshot.SnapshotManager;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.master.zksyncer.MasterAddressSyncer;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.master.zksyncer.MetaLocationSyncer;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.mob.MobConstants;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.monitoring.MemoryBoundedLogMessageBuffer;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.monitoring.MonitoredTask;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.procedure.MasterProcedureManagerHost;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.procedure.flush.MasterFlushTableProcedureManager;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.procedure2.LockedResource;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.procedure2.ProcedureEvent;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher.RemoteProcedure;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.quotas.MasterQuotaManager;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.quotas.MasterSpaceQuotaObserver;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.quotas.QuotaObserverChore;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.quotas.QuotaUtil;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.quotas.SnapshotQuotaObserverChore;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshotNotifier;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshotNotifierFactory;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.regionserver.DefaultStoreEngine;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.regionserver.HStore;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.regionserver.RegionSplitPolicy;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.regionserver.compactions.ExploringCompactionPolicy;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.regionserver.compactions.FIFOCompactionPolicy;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.replication.ReplicationLoadSource;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.replication.ReplicationUtils;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.replication.SyncReplicationState;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.replication.master.ReplicationHFileCleaner;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.replication.master.ReplicationLogCleaner;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.replication.master.ReplicationPeerConfigUpgrader;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.trace.TraceUtil;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>import org.apache.hadoop.hbase.util.Addressing;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>import org.apache.hadoop.hbase.util.CompressionTest;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>import org.apache.hadoop.hbase.util.EncryptionTest;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>import org.apache.hadoop.hbase.util.HFileArchiveUtil;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>import org.apache.hadoop.hbase.util.HasThread;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>import org.apache.hadoop.hbase.util.IdLock;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>import org.apache.hadoop.hbase.util.ModifyRegionUtils;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>import org.apache.hadoop.hbase.util.VersionInfo;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>import org.apache.hadoop.hbase.zookeeper.LoadBalancerTracker;<a name="line.199"></a>
-<span class="sourceLineNo">200</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.200"></a>
-<span class="sourceLineNo">201</span>import org.apache.hadoop.hbase.zookeeper.MasterMaintenanceModeTracker;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>import org.apache.hadoop.hbase.zookeeper.RegionNormalizerTracker;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>import org.apache.hadoop.hbase.zookeeper.ZKClusterId;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>import org.apache.hadoop.hbase.zookeeper.ZKWatcher;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>import org.apache.hadoop.hbase.zookeeper.ZNodePaths;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.207"></a>
-<span class="sourceLineNo">208</span>import org.apache.zookeeper.KeeperException;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>import org.eclipse.jetty.server.Server;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>import org.eclipse.jetty.server.ServerConnector;<a name="line.210"></a>
-<span class="sourceLineNo">211</span>import org.eclipse.jetty.servlet.ServletHolder;<a name="line.211"></a>
-<span class="sourceLineNo">212</span>import org.eclipse.jetty.webapp.WebAppContext;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>import org.slf4j.Logger;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>import org.slf4j.LoggerFactory;<a name="line.214"></a>
-<span class="sourceLineNo">215</span><a name="line.215"></a>
-<span class="sourceLineNo">216</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.216"></a>
-<span class="sourceLineNo">217</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Quotas;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceViolationPolicy;<a name="line.223"></a>
-<span class="sourceLineNo">224</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription;<a name="line.224"></a>
-<span class="sourceLineNo">225</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos;<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>/**<a name="line.227"></a>
-<span class="sourceLineNo">228</span> * HMaster is the "master server" for HBase. An HBase cluster has one active<a name="line.228"></a>
-<span class="sourceLineNo">229</span> * master.  If many masters are started, all compete.  Whichever wins goes on to<a name="line.229"></a>
-<span class="sourceLineNo">230</span> * run the cluster.  All others park themselves in their constructor until<a name="line.230"></a>
-<span class="sourceLineNo">231</span> * master or cluster shutdown or until the active master loses its lease in<a name="line.231"></a>
-<span class="sourceLineNo">232</span> * zookeeper.  Thereafter, all running master jostle to take over master role.<a name="line.232"></a>
-<span class="sourceLineNo">233</span> *<a name="line.233"></a>
-<span class="sourceLineNo">234</span> * &lt;p&gt;The Master can be asked shutdown the cluster. See {@link #shutdown()}.  In<a name="line.234"></a>
-<span class="sourceLineNo">235</span> * this case it will tell all regionservers to go down and then wait on them<a name="line.235"></a>
-<span class="sourceLineNo">236</span> * all reporting in that they are down.  This master will then shut itself down.<a name="line.236"></a>
-<span class="sourceLineNo">237</span> *<a name="line.237"></a>
-<span class="sourceLineNo">238</span> * &lt;p&gt;You can also shutdown just this master.  Call {@link #stopMaster()}.<a name="line.238"></a>
-<span class="sourceLineNo">239</span> *<a name="line.239"></a>
-<span class="sourceLineNo">240</span> * @see org.apache.zookeeper.Watcher<a name="line.240"></a>
-<span class="sourceLineNo">241</span> */<a name="line.241"></a>
-<span class="sourceLineNo">242</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.242"></a>
-<span class="sourceLineNo">243</span>@SuppressWarnings("deprecation")<a name="line.243"></a>
-<span class="sourceLineNo">244</span>public class HMaster extends HRegionServer implements MasterServices {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  private static Logger LOG = LoggerFactory.getLogger(HMaster.class);<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>  /**<a name="line.247"></a>
-<span class="sourceLineNo">248</span>   * Protection against zombie master. Started once Master accepts active responsibility and<a name="line.248"></a>
-<span class="sourceLineNo">249</span>   * starts taking over responsibilities. Allows a finite time window before giving up ownership.<a name="line.249"></a>
-<span class="sourceLineNo">250</span>   */<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  private static class InitializationMonitor extends HasThread {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    /** The amount of time in milliseconds to sleep before checking initialization status. */<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    public static final String TIMEOUT_KEY = "hbase.master.initializationmonitor.timeout";<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    public static final long TIMEOUT_DEFAULT = TimeUnit.MILLISECONDS.convert(15, TimeUnit.MINUTES);<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>    /**<a name="line.256"></a>
-<span class="sourceLineNo">257</span>     * When timeout expired and initialization has not complete, call {@link System#exit(int)} when<a name="line.257"></a>
-<span class="sourceLineNo">258</span>     * true, do nothing otherwise.<a name="line.258"></a>
-<span class="sourceLineNo">259</span>     */<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    public static final String HALT_KEY = "hbase.master.initializationmonitor.haltontimeout";<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    public static final boolean HALT_DEFAULT = false;<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>    private final HMaster master;<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    private final long timeout;<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    private final boolean haltOnTimeout;<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>    /** Creates a Thread that monitors the {@link #isInitialized()} state. */<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    InitializationMonitor(HMaster master) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      super("MasterInitializationMonitor");<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      this.master = master;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      this.timeout = master.getConfiguration().getLong(TIMEOUT_KEY, TIMEOUT_DEFAULT);<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      this.haltOnTimeout = master.getConfiguration().getBoolean(HALT_KEY, HALT_DEFAULT);<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      this.setDaemon(true);<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>    @Override<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    public void run() {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      try {<a name="line.278"></a>
-<span class="sourceLineNo">279</span>        while (!master.isStopped() &amp;&amp; master.isActiveMaster()) {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>          Thread.sleep(timeout);<a name="line.280"></a>
-<span class="sourceLineNo">281</span>          if (master.isInitialized()) {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>            LOG.debug("Initialization completed within allotted tolerance. Monitor exiting.");<a name="line.282"></a>
-<span class="sourceLineNo">283</span>          } else {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>            LOG.error("Master failed to complete initialization after " + timeout + "ms. Please"<a name="line.284"></a>
-<span class="sourceLineNo">285</span>                + " consider submitting a bug report including a thread dump of this process.");<a name="line.285"></a>
-<span class="sourceLineNo">286</span>            if (haltOnTimeout) {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>              LOG.error("Zombie Master exiting. Thread dump to stdout");<a name="line.287"></a>
-<span class="sourceLineNo">288</span>              Threads.printThreadInfo(System.out, "Zombie HMaster");<a name="line.288"></a>
-<span class="sourceLineNo">289</span>              System.exit(-1);<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>      } catch (InterruptedException ie) {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>        LOG.trace("InitMonitor thread interrupted. Existing.");<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      }<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>  // MASTER is name of the webapp and the attribute name used stuffing this<a name="line.299"></a>
-<span class="sourceLineNo">300</span>  //instance into web context.<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  public static final String MASTER = "master";<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>  // Manager and zk listener for master election<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  private final ActiveMasterManager activeMasterManager;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  // Region server tracker<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  private RegionServerTracker regionServerTracker;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>  // Draining region server tracker<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  private DrainingServerTracker drainingServerTracker;<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  // Tracker for load balancer state<a name="line.309"></a>
-<span class="sourceLineNo">310</span>  LoadBalancerTracker loadBalancerTracker;<a name="line.310"></a>
-<span class="sourceLineNo">311</span>  // Tracker for meta location, if any client ZK quorum specified<a name="line.311"></a>
-<span class="sourceLineNo">312</span>  MetaLocationSyncer metaLocationSyncer;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  // Tracker for active master location, if any client ZK quorum specified<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  MasterAddressSyncer masterAddressSyncer;<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>  // Tracker for split and merge state<a name="line.316"></a>
-<span class="sourceLineNo">317</span>  private SplitOrMergeTracker splitOrMergeTracker;<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span>  // Tracker for region normalizer state<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  private RegionNormalizerTracker regionNormalizerTracker;<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span>  //Tracker for master maintenance mode setting<a name="line.322"></a>
-<span class="sourceLineNo">323</span>  private MasterMaintenanceModeTracker maintenanceModeTracker;<a name="line.323"></a>
-<span class="sourceLineNo">324</span><a name="line.324"></a>
-<span class="sourceLineNo">325</span>  private ClusterSchemaService clusterSchemaService;<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public static final String HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS =<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    "hbase.master.wait.on.service.seconds";<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  public static final int DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS = 5 * 60;<a name="line.329"></a>
-<span class="sourceLineNo">330</span><a name="line.330"></a>
-<span class="sourceLineNo">331</span>  // Metrics for the HMaster<a name="line.331"></a>
-<span class="sourceLineNo">332</span>  final MetricsMaster metricsMaster;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>  // file system manager for the master FS operations<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  private MasterFileSystem fileSystemManager;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  private MasterWalManager walManager;<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  // server manager to deal with region server info<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  private volatile ServerManager serverManager;<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>  // manager of assignment nodes in zookeeper<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  private AssignmentManager assignmentManager;<a name="line.341"></a>
-<span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>  // manager of replication<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  private ReplicationPeerManager replicationPeerManager;<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  private SyncReplicationReplayWALManager syncReplicationReplayWALManager;<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span>  // buffer for "fatal error" notices from region servers<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  // in the cluster. This is only used for assisting<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  // operations/debugging.<a name="line.350"></a>
-<span class="sourceLineNo">351</span>  MemoryBoundedLogMessageBuffer rsFatals;<a name="line.351"></a>
-<span class="sourceLineNo">352</span><a name="line.352"></a>
-<span class="sourceLineNo">353</span>  // flag set after we become the active master (used for testing)<a name="line.353"></a>
-<span class="sourceLineNo">354</span>  private volatile boolean activeMaster = false;<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span>  // flag set after we complete initialization once active<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  private final ProcedureEvent&lt;?&gt; initialized = new ProcedureEvent&lt;&gt;("master initialized");<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>  // flag set after master services are started,<a name="line.359"></a>
-<span class="sourceLineNo">360</span>  // initialization may have not completed yet.<a name="line.360"></a>
-<span class="sourceLineNo">361</span>  volatile boolean serviceStarted = false;<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span>  // Maximum time we should run balancer for<a name="line.363"></a>
-<span class="sourceLineNo">364</span>  private final int maxBlancingTime;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  // Maximum percent of regions in transition when balancing<a name="line.365"></a>
-<span class="sourceLineNo">366</span>  private final double maxRitPercent;<a name="line.366"></a>
-<span class="sourceLineNo">367</span><a name="line.367"></a>
-<span class="sourceLineNo">368</span>  private final LockManager lockManager = new LockManager(this);<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>  private LoadBalancer balancer;<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  private RegionNormalizer normalizer;<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  private BalancerChore balancerChore;<a name="line.372"></a>
-<span class="sourceLineNo">373</span>  private RegionNormalizerChore normalizerChore;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  private ClusterStatusChore clusterStatusChore;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  private ClusterStatusPublisher clusterStatusPublisherChore = null;<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>  CatalogJanitor catalogJanitorChore;<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  private LogCleaner logCleaner;<a name="line.378"></a>
-<span class="sourceLineNo">379</span>  private HFileCleaner hfileCleaner;<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  private ReplicationBarrierCleaner replicationBarrierCleaner;<a name="line.380"></a>
-<span class="sourceLineNo">381</span>  private ExpiredMobFileCleanerChore expiredMobFileCleanerChore;<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  private MobCompactionChore mobCompactChore;<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  private MasterMobCompactionThread mobCompactThread;<a name="line.383"></a>
-<span class="sourceLineNo">384</span>  // used to synchronize the mobCompactionStates<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  private final IdLock mobCompactionLock = new IdLock();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  // save the information of mob compactions in tables.<a name="line.386"></a>
-<span class="sourceLineNo">387</span>  // the key is table name, the value is the number of compactions in that table.<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  private Map&lt;TableName, AtomicInteger&gt; mobCompactionStates = Maps.newConcurrentMap();<a name="line.388"></a>
-<span class="sourceLineNo">389</span><a name="line.389"></a>
-<span class="sourceLineNo">390</span>  MasterCoprocessorHost cpHost;<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span>  private final boolean preLoadTableDescriptors;<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>  // Time stamps for when a hmaster became active<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  private long masterActiveTime;<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span>  // Time stamp for when HMaster finishes becoming Active Master<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  private long masterFinishedInitializationTime;<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>  //should we check the compression codec type at master side, default true, HBASE-6370<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  private final boolean masterCheckCompression;<a name="line.401"></a>
-<span class="sourceLineNo">402</span><a name="line.402"></a>
-<span class="sourceLineNo">403</span>  //should we check encryption settings at master side, default true<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  private final boolean masterCheckEncryption;<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>  Map&lt;String, Service&gt; coprocessorServiceHandlers = Maps.newHashMap();<a name="line.406"></a>
-<span class="sourceLineNo">407</span><a name="line.407"></a>
-<span class="sourceLineNo">408</span>  // monitor for snapshot of hbase tables<a name="line.408"></a>
-<span class="sourceLineNo">409</span>  SnapshotManager snapshotManager;<a name="line.409"></a>
-<span class="sourceLineNo">410</span>  // monitor for distributed procedures<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  private MasterProcedureManagerHost mpmHost;<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  // it is assigned after 'initialized' guard set to true, so should be volatile<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  private volatile MasterQuotaManager quotaManager;<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  private SpaceQuotaSnapshotNotifier spaceQuotaSnapshotNotifier;<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  private QuotaObserverChore quotaObserverChore;<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  private SnapshotQuotaObserverChore snapshotQuotaChore;<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  private ProcedureExecutor&lt;MasterProcedureEnv&gt; procedureExecutor;<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  private WALProcedureStore procedureStore;<a name="line.420"></a>
-<span class="sourceLineNo">421</span><a name="line.421"></a>
-<span class="sourceLineNo">422</span>  // handle table states<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  private TableStateManager tableStateManager;<a name="line.423"></a>
-<span class="sourceLineNo">424</span><a name="line.424"></a>
-<span class="sourceLineNo">425</span>  private long splitPlanCount;<a name="line.425"></a>
-<span class="sourceLineNo">426</span>  private long mergePlanCount;<a name="line.426"></a>
-<span class="sourceLineNo">427</span><a name="line.427"></a>
-<span class="sourceLineNo">428</span>  /* Handle favored nodes information */<a name="line.428"></a>
-<span class="sourceLineNo">429</span>  private FavoredNodesManager favoredNodesManager;<a name="line.429"></a>
-<span class="sourceLineNo">430</span><a name="line.430"></a>
-<span class="sourceLineNo">431</span>  /** jetty server for master to redirect requests to regionserver infoServer */<a name="line.431"></a>
-<span class="sourceLineNo">432</span>  private Server masterJettyServer;<a name="line.432"></a>
-<span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>  public static class RedirectServlet extends HttpServlet {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    private static final long serialVersionUID = 2894774810058302473L;<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    private final int regionServerInfoPort;<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    private final String regionServerHostname;<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>     * @param infoServer that we're trying to send all requests to<a name="line.440"></a>
-<span class="sourceLineNo">441</span>     * @param hostname may be null. if given, will be used for redirects instead of host from client.<a name="line.441"></a>
-<span class="sourceLineNo">442</span>     */<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    public RedirectServlet(InfoServer infoServer, String hostname) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>       regionServerInfoPort = infoServer.getPort();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>       regionServerHostname = hostname;<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    }<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>    @Override<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    public void doGet(HttpServletRequest request,<a name="line.449"></a>
-<span class="sourceLineNo">450</span>        HttpServletResponse response) throws ServletException, IOException {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      String redirectHost = regionServerHostname;<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      if(redirectHost == null) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        redirectHost = request.getServerName();<a name="line.453"></a>
-<span class="sourceLineNo">454</span>        if(!Addressing.isLocalAddress(InetAddress.getByName(redirectHost))) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>          LOG.warn("Couldn't resolve '" + redirectHost + "' as an address local to this node and '" +<a name="line.455"></a>
-<span class="sourceLineNo">456</span>              MASTER_HOSTNAME_KEY + "' is not set; client will get a HTTP 400 response. If " +<a name="line.456"></a>
-<span class="sourceLineNo">457</span>              "your HBase deployment relies on client accessible names that the region server process " +<a name="line.457"></a>
-<span class="sourceLineNo">458</span>              "can't resolve locally, then you should set the previously mentioned configuration variable " +<a name="line.458"></a>
-<span class="sourceLineNo">459</span>              "to an appropriate hostname.");<a name="line.459"></a>
-<span class="sourceLineNo">460</span>          // no sending client provided input back to the client, so the goal host is just in the logs.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>          response.sendError(400, "Request was to a host that I can't resolve for any of the network interfaces on " +<a name="line.461"></a>
-<span class="sourceLineNo">462</span>              "this node. If this is due to an intermediary such as an HTTP load balancer or other proxy, your HBase " +<a name="line.462"></a>
-<span class="sourceLineNo">463</span>              "administrator can set '" + MASTER_HOSTNAME_KEY + "' to point to the correct hostname.");<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          return;<a name="line.464"></a>
-<span class="sourceLineNo">465</span>        }<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      }<a name="line.466"></a>
-<span class="sourceLineNo">467</span>      // TODO this scheme should come from looking at the scheme registered in the infoserver's http server for the<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      // host and port we're using, but it's buried way too deep to do that ATM.<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      String redirectUrl = request.getScheme() + "://"<a name="line.469"></a>
-<span class="sourceLineNo">470</span>        + redirectHost + ":" + regionServerInfoPort<a name="line.470"></a>
-<span class="sourceLineNo">471</span>        + request.getRequestURI();<a name="line.471"></a>
-<span class="sourceLineNo">472</span>      response.sendRedirect(redirectUrl);<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><a name="line.475"></a>
-<span class="sourceLineNo">476</span>  /**<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * Initializes the HMaster. The steps are as follows:<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * &lt;p&gt;<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   * &lt;ol&gt;<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * &lt;li&gt;Initialize the local HRegionServer<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * &lt;li&gt;Start the ActiveMasterManager.<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   * &lt;/ol&gt;<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   * &lt;p&gt;<a name="line.483"></a>
-<span class="sourceLineNo">484</span>   * Remaining steps of initialization occur in<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   * #finishActiveMasterInitialization(MonitoredTask) after<a name="line.485"></a>
-<span class="sourceLineNo">486</span>   * the master becomes the active one.<a name="line.486"></a>
-<span class="sourceLineNo">487</span>   */<a name="line.487"></a>
-<span class="sourceLineNo">488</span>  public HMaster(final Configuration conf)<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      throws IOException, KeeperException {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    super(conf);<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    TraceUtil.initTracer(conf);<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    try {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      this.rsFatals = new MemoryBoundedLogMessageBuffer(<a name="line.493"></a>
-<span class="sourceLineNo">494</span>          conf.getLong("hbase.master.buffer.for.rs.fatals", 1 * 1024 * 1024));<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      LOG.info("hbase.rootdir=" + getRootDir() +<a name="line.495"></a>
-<span class="sourceLineNo">496</span>          ", hbase.cluster.distributed=" + this.conf.getBoolean(HConstants.CLUSTER_DISTRIBUTED, false));<a name="line.496"></a>
-<span class="sourceLineNo">497</span><a name="line.497"></a>
-<span class="sourceLineNo">498</span>      // Disable usage of meta replicas in the master<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      this.conf.setBoolean(HConstants.USE_META_REPLICAS, false);<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>      decorateMasterConfiguration(this.conf);<a name="line.501"></a>
-<span class="sourceLineNo">502</span><a name="line.502"></a>
-<span class="sourceLineNo">503</span>      // Hack! Maps DFSClient =&gt; Master for logs.  HDFS made this<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      // config param for task trackers, but we can piggyback off of it.<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      if (this.conf.get("mapreduce.task.attempt.id") == null) {<a name="line.505"></a>
-<span class="sourceLineNo">506</span>        this.conf.set("mapreduce.task.attempt.id", "hb_m_" + this.serverName.toString());<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>      // should we check the compression codec type at master side, default true, HBASE-6370<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      this.masterCheckCompression = conf.getBoolean("hbase.master.check.compression", true);<a name="line.510"></a>
-<span class="sourceLineNo">511</span><a name="line.511"></a>
-<span class="sourceLineNo">512</span>      // should we check encryption settings at master side, default true<a name="line.512"></a>
-<span class="sourceLineNo">513</span>      this.masterCheckEncryption = conf.getBoolean("hbase.master.check.encryption", true);<a name="line.513"></a>
-<span class="sourceLineNo">514</span><a name="line.514"></a>
-<span class="sourceLineNo">515</span>      this.metricsMaster = new MetricsMaster(new MetricsMasterWrapperImpl(this));<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>      // preload table descriptor at startup<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      this.preLoadTableDescriptors = conf.getBoolean("hbase.master.preload.tabledescriptors", true);<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>      this.maxBlancingTime = getMaxBalancingTime();<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      this.maxRitPercent = conf.getDouble(HConstants.HBASE_MASTER_BALANCER_MAX_RIT_PERCENT,<a name="line.521"></a>
-<span class="sourceLineNo">522</span>          HConstants.DEFAULT_HBASE_MASTER_BALANCER_MAX_RIT_PERCENT);<a name="line.522"></a>
-<span class="sourceLineNo">523</span><a name="line.523"></a>
-<span class="sourceLineNo">524</span>      // Do we publish the status?<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>      boolean shouldPublish = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      Class&lt;? extends ClusterStatusPublisher.Publisher&gt; publisherClass =<a name="line.528"></a>
-<span class="sourceLineNo">529</span>          conf.getClass(ClusterStatusPublisher.STATUS_PUBLISHER_CLASS,<a name="line.529"></a>
-<span class="sourceLineNo">530</span>              ClusterStatusPublisher.DEFAULT_STATUS_PUBLISHER_CLASS,<a name="line.530"></a>
-<span class="sourceLineNo">531</span>              ClusterStatusPublisher.Publisher.class);<a name="line.531"></a>
-<span class="sourceLineNo">532</span><a name="line.532"></a>
-<span class="sourceLineNo">533</span>      if (shouldPublish) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>        if (publisherClass == null) {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.535"></a>
-<span class="sourceLineNo">536</span>              ClusterStatusPublisher.DEFAULT_STATUS_PUBLISHER_CLASS +<a name="line.536"></a>
-<span class="sourceLineNo">537</span>              " is not set - not publishing status");<a name="line.537"></a>
-<span class="sourceLineNo">538</span>        } else {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>          clusterStatusPublisherChore = new ClusterStatusPublisher(this, conf, publisherClass);<a name="line.539"></a>
-<span class="sourceLineNo">540</span>          getChoreService().scheduleChore(clusterStatusPublisherChore);<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>      // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>        this.activeMasterManager = new ActiveMasterManager(zooKeeper, this.serverName, this);<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      } else {<a name="line.547"></a>
-<span class="sourceLineNo">548</span>        this.activeMasterManager = null;<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      }<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    } catch (Throwable t) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      // Make sure we log the exception. HMaster is often started via reflection and the<a name="line.551"></a>
-<span class="sourceLineNo">552</span>      // cause of failed startup is lost.<a name="line.552"></a>
-<span class="sourceLineNo">553</span>      LOG.error("Failed construction of Master", t);<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      throw t;<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">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>  @Override<a name="line.558"></a>
-<span class="sourceLineNo">559</span>  protected String getUseThisHostnameInstead(Configuration conf) {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    return conf.get(MASTER_HOSTNAME_KEY);<a name="line.560"></a>
-<span class="sourceLineNo">561</span>  }<a name="line.561"></a>
-<span class="sourceLineNo">562</span><a name="line.562"></a>
-<span class="sourceLineNo">563</span>  // Main run loop. Calls through to the regionserver run loop AFTER becoming active Master; will<a name="line.563"></a>
-<span class="sourceLineNo">564</span>  // block in here until then.<a name="line.564"></a>
-<span class="sourceLineNo">565</span>  @Override<a name="line.565"></a>
-<span class="sourceLineNo">566</span>  public void run() {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    try {<a name="line.567"></a>
-<span class="sourceLineNo">568</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>        Threads.setDaemonThreadRunning(new Thread(() -&gt; {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>          try {<a name="line.570"></a>
-<span class="sourceLineNo">571</span>            int infoPort = putUpJettyServer();<a name="line.571"></a>
-<span class="sourceLineNo">572</span>            startActiveMasterManager(infoPort);<a name="line.572"></a>
-<span class="sourceLineNo">573</span>          } catch (Throwable t) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>            // Make sure we log the exception.<a name="line.574"></a>
-<span class="sourceLineNo">575</span>            String error = "Failed to become Active Master";<a name="line.575"></a>
-<span class="sourceLineNo">576</span>            LOG.error(error, t);<a name="line.576"></a>
-<span class="sourceLineNo">577</span>            // Abort should have been called already.<a name="line.577"></a>
-<span class="sourceLineNo">578</span>            if (!isAborted()) {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>              abort(error, t);<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">584</span>      // Fall in here even if we have been aborted. Need to run the shutdown services and<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      // the super run call will do this for us.<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      super.run();<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    } finally {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      if (this.clusterSchemaService != null) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>        // If on way out, then we are no longer active master.<a name="line.589"></a>
-<span class="sourceLineNo">590</span>        this.clusterSchemaService.stopAsync();<a name="line.590"></a>
-<span class="sourceLineNo">591</span>        try {<a name="line.591"></a>
-<span class="sourceLineNo">592</span>          this.clusterSchemaService.awaitTerminated(<a name="line.592"></a>
-<span class="sourceLineNo">593</span>              getConfiguration().getInt(HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS,<a name="line.593"></a>
-<span class="sourceLineNo">594</span>              DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS), TimeUnit.SECONDS);<a name="line.594"></a>
-<span class="sourceLineNo">595</span>        } catch (TimeoutException te) {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>          LOG.warn("Failed shutdown of clusterSchemaService", te);<a name="line.596"></a>
-<span class="sourceLineNo">597</span>        }<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      }<a name="line.598"></a>
-<span class="sourceLineNo">599</span>      this.activeMaster = false;<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    }<a name="line.600"></a>
-<span class="sourceLineNo">601</span>  }<a name="line.601"></a>
-<span class="sourceLineNo">602</span><a name="line.602"></a>
-<span class="sourceLineNo">603</span>  // return the actual infoPort, -1 means disable info server.<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  private int putUpJettyServer() throws IOException {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    if (!conf.getBoolean("hbase.master.infoserver.redirect", true)) {<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      return -1;<a name="line.606"></a>
-<span class="sourceLineNo">607</span>    }<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    final int infoPort = conf.getInt("hbase.master.info.port.orig",<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      HConstants.DEFAULT_MASTER_INFOPORT);<a name="line.609"></a>
-<span class="sourceLineNo">610</span>    // -1 is for disabling info server, so no redirecting<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    if (infoPort &lt; 0 || infoServer == null) {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      return -1;<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    }<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    if(infoPort == infoServer.getPort()) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      return infoPort;<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    }<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    final String addr = conf.get("hbase.master.info.bindAddress", "0.0.0.0");<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    if (!Addressing.isLocalAddress(InetAddress.getByName(addr))) {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      String msg =<a name="line.619"></a>
-<span class="sourceLineNo">620</span>          "Failed to start redirecting jetty server. Address " + addr<a name="line.620"></a>
-<span class="sourceLineNo">621</span>              + " does not belong to this host. Correct configuration parameter: "<a name="line.621"></a>
-<span class="sourceLineNo">622</span>              + "hbase.master.info.bindAddress";<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      LOG.error(msg);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      throw new IOException(msg);<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    }<a name="line.625"></a>
-<span class="sourceLineNo">626</span><a name="line.626"></a>
-<span class="sourceLineNo">627</span>    // TODO I'm pretty sure we could just add another binding to the InfoServer run by<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    // the RegionServer and have it run the RedirectServlet instead of standing up<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    // a second entire stack here.<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    masterJettyServer = new Server();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>    final ServerConnector connector = new ServerConnector(masterJettyServer);<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    connector.setHost(addr);<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    connector.setPort(infoPort);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    masterJettyServer.addConnector(connector);<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    masterJettyServer.setStopAtShutdown(true);<a name="line.635"></a>
-<span class="sourceLineNo">636</span><a name="line.636"></a>
-<span class="sourceLineNo">637</span>    final String redirectHostname =<a name="line.637"></a>
-<span class="sourceLineNo">638</span>        StringUtils.isBlank(useThisHostnameInstead) ? null : useThisHostnameInstead;<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span>    final RedirectServlet redirect = new RedirectServlet(infoServer, redirectHostname);<a name="line.640"></a>
-<span class="sourceLineNo">641</span>    final WebAppContext context = new WebAppContext(null, "/", null, null, null, null, WebAppContext.NO_SESSIONS);<a name="line.641"></a>
-<span class="sourceLineNo">642</span>    context.addServlet(new ServletHolder(redirect), "/*");<a name="line.642"></a>
-<span class="sourceLineNo">643</span>    context.setServer(masterJettyServer);<a name="line.643"></a>
-<span class="sourceLineNo">644</span><a name="line.644"></a>
-<span class="sourceLineNo">645</span>    try {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>      masterJettyServer.start();<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    } catch (Exception e) {<a name="line.647"></a>
-<span class="sourceLineNo">648</span>      throw new IOException("Failed to start redirecting jetty server", e);<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    }<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    return connector.getLocalPort();<a name="line.650"></a>
-<span class="sourceLineNo">651</span>  }<a name="line.651"></a>
-<span class="sourceLineNo">652</span><a name="line.652"></a>
-<span class="sourceLineNo">653</span>  @Override<a name="line.653"></a>
-<span class="sourceLineNo">654</span>  protected Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    return builder -&gt; builder.setRegionReplication(conf.getInt(HConstants.META_REPLICAS_NUM, HConstants.DEFAULT_META_REPLICA_NUM));<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
-<span class="sourceLineNo">657</span>  /**<a name="line.657"></a>
-<span class="sourceLineNo">658</span>   * For compatibility, if failed with regionserver credentials, try the master one<a name="line.658"></a>
-<span class="sourceLineNo">659</span>   */<a name="line.659"></a>
-<span class="sourceLineNo">660</span>  @Override<a name="line.660"></a>
-<span class="sourceLineNo">661</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    try {<a name="line.662"></a>
-<span class="sourceLineNo">663</span>      super.login(user, host);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    } catch (IOException ie) {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      user.login("hbase.master.keytab.file",<a name="line.665"></a>
-<span class="sourceLineNo">666</span>        "hbase.master.kerberos.principal", host);<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    }<a name="line.667"></a>
-<span class="sourceLineNo">668</span>  }<a name="line.668"></a>
-<span class="sourceLineNo">669</span><a name="line.669"></a>
-<span class="sourceLineNo">670</span>  /**<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   * If configured to put regions on active master,<a name="line.671"></a>
-<span class="sourceLineNo">672</span>   * wait till a backup master becomes active.<a name="line.672"></a>
-<span class="sourceLineNo">673</span>   * Otherwise, loop till the server is stopped or aborted.<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   */<a name="line.674"></a>
-<span class="sourceLineNo">675</span>  @Override<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  protected void waitForMasterActive(){<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(conf);<a name="line.677"></a>
-<span class="sourceLineNo">678</span>    while (!(tablesOnMaster &amp;&amp; activeMaster) &amp;&amp; !isStopped() &amp;&amp; !isAborted()) {<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      sleeper.sleep();<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    }<a name="line.680"></a>
-<span class="sourceLineNo">681</span>  }<a name="line.681"></a>
-<span class="sourceLineNo">682</span><a name="line.682"></a>
-<span class="sourceLineNo">683</span>  @VisibleForTesting<a name="line.683"></a>
-<span class="sourceLineNo">684</span>  public MasterRpcServices getMasterRpcServices() {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    return (MasterRpcServices)rpcServices;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>  }<a name="line.686"></a>
-<span class="sourceLineNo">687</span><a name="line.687"></a>
-<span class="sourceLineNo">688</span>  public boolean balanceSwitch(final boolean b) throws IOException {<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    return getMasterRpcServices().switchBalancer(b, BalanceSwitchMode.ASYNC);<a name="line.689"></a>
-<span class="sourceLineNo">690</span>  }<a name="line.690"></a>
-<span class="sourceLineNo">691</span><a name="line.691"></a>
-<span class="sourceLineNo">692</span>  @Override<a name="line.692"></a>
-<span class="sourceLineNo">693</span>  protected String getProcessName() {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    return MASTER;<a name="line.694"></a>
-<span class="sourceLineNo">695</span>  }<a name="line.695"></a>
-<span class="sourceLineNo">696</span><a name="line.696"></a>
-<span class="sourceLineNo">697</span>  @Override<a name="line.697"></a>
-<span class="sourceLineNo">698</span>  protected boolean canCreateBaseZNode() {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    return true;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>  }<a name="line.700"></a>
-<span class="sourceLineNo">701</span><a name="line.701"></a>
-<span class="sourceLineNo">702</span>  @Override<a name="line.702"></a>
-<span class="sourceLineNo">703</span>  protected boolean canUpdateTableDescriptor() {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    return true;<a name="line.704"></a>
-<span class="sourceLineNo">705</span>  }<a name="line.705"></a>
-<span class="sourceLineNo">706</span><a name="line.706"></a>
-<span class="sourceLineNo">707</span>  @Override<a name="line.707"></a>
-<span class="sourceLineNo">708</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    return new MasterRpcServices(this);<a name="line.709"></a>
-<span class="sourceLineNo">710</span>  }<a name="line.710"></a>
-<span class="sourceLineNo">711</span><a name="line.711"></a>
-<span class="sourceLineNo">712</span>  @Override<a name="line.712"></a>
-<span class="sourceLineNo">713</span>  protected void configureInfoServer() {<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    infoServer.addServlet("master-status", "/master-status", MasterStatusServlet.class);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    infoServer.setAttribute(MASTER, this);<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.716"></a>
-<span class="sourceLineNo">717</span>      super.configureInfoServer();<a name="line.717"></a>
-<span class="sourceLineNo">718</span>    }<a name="line.718"></a>
-<span class="sourceLineNo">719</span>  }<a name="line.719"></a>
-<span class="sourceLineNo">720</span><a name="line.720"></a>
-<span class="sourceLineNo">721</span>  @Override<a name="line.721"></a>
-<span class="sourceLineNo">722</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    return MasterDumpServlet.class;<a name="line.723"></a>
-<span class="sourceLineNo">724</span>  }<a name="line.724"></a>
-<span class="sourceLineNo">725</span><a name="line.725"></a>
-<span class="sourceLineNo">726</span>  @Override<a name="line.726"></a>
-<span class="sourceLineNo">727</span>  public MetricsMaster getMasterMetrics() {<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    return metricsMaster;<a name="line.728"></a>
-<span class="sourceLineNo">729</span>  }<a name="line.729"></a>
-<span class="sourceLineNo">730</span><a name="line.730"></a>
-<span class="sourceLineNo">731</span>  /**<a name="line.731"></a>
-<span class="sourceLineNo">732</span>   * &lt;p&gt;<a name="line.732"></a>
-<span class="sourceLineNo">733</span>   * Initialize all ZK based system trackers. But do not include {@link RegionServerTracker}, it<a name="line.733"></a>
-<span class="sourceLineNo">734</span>   * should have already been initialized along with {@link ServerManager}.<a name="line.734"></a>
-<span class="sourceLineNo">735</span>   * &lt;/p&gt;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>   * &lt;p&gt;<a name="line.736"></a>
-<span class="sourceLineNo">737</span>   * Will be overridden in tests.<a name="line.737"></a>
-<span class="sourceLineNo">738</span>   * &lt;/p&gt;<a name="line.738"></a>
-<span class="sourceLineNo">739</span>   */<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  @VisibleForTesting<a name="line.740"></a>
-<span class="sourceLineNo">741</span>  protected void initializeZKBasedSystemTrackers()<a name="line.741"></a>
-<span class="sourceLineNo">742</span>      throws IOException, InterruptedException, KeeperException, ReplicationException {<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    this.balancer = LoadBalancerFactory.getLoadBalancer(conf);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>    this.normalizer = RegionNormalizerFactory.getRegionNormalizer(conf);<a name="line.744"></a>
-<span class="sourceLineNo">745</span>    this.normalizer.setMasterServices(this);<a name="line.745"></a>
-<span class="sourceLineNo">746</span>    this.normalizer.setMasterRpcServices((MasterRpcServices)rpcServices);<a name="line.746"></a>
-<span class="sourceLineNo">747</span>    this.loadBalancerTracker = new LoadBalancerTracker(zooKeeper, this);<a name="line.747"></a>
-<span class="sourceLineNo">748</span>    this.loadBalancerTracker.start();<a name="line.748"></a>
-<span class="sourceLineNo">749</span><a name="line.749"></a>
-<span class="sourceLineNo">750</span>    this.regionNormalizerTracker = new RegionNormalizerTracker(zooKeeper, this);<a name="line.750"></a>
-<span class="sourceLineNo">751</span>    this.regionNormalizerTracker.start();<a name="line.751"></a>
-<span class="sourceLineNo">752</span><a name="line.752"></a>
-<span class="sourceLineNo">753</span>    this.splitOrMergeTracker = new SplitOrMergeTracker(zooKeeper, conf, this);<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    this.splitOrMergeTracker.start();<a name="line.754"></a>
-<span class="sourceLineNo">755</span><a name="line.755"></a>
-<span class="sourceLineNo">756</span>    this.replicationPeerManager = ReplicationPeerManager.create(zooKeeper, conf);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    this.syncReplicationReplayWALManager = new SyncReplicationReplayWALManager(this);<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>    this.drainingServerTracker = new DrainingServerTracker(zooKeeper, this, this.serverManager);<a name="line.759"></a>
-<span class="sourceLineNo">760</span>    this.drainingServerTracker.start();<a name="line.760"></a>
-<span class="sourceLineNo">761</span><a name="line.761"></a>
-<span class="sourceLineNo">762</span>    this.maintenanceModeTracker = new MasterMaintenanceModeTracker(zooKeeper);<a name="line.762"></a>
-<span class="sourceLineNo">763</span>    this.maintenanceModeTracker.start();<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span>    String clientQuorumServers = conf.get(HConstants.CLIENT_ZOOKEEPER_QUORUM);<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    boolean clientZkObserverMode = conf.getBoolean(HConstants.CLIENT_ZOOKEEPER_OBSERVER_MODE,<a name="line.766"></a>
-<span class="sourceLineNo">767</span>      HConstants.DEFAULT_CLIENT_ZOOKEEPER_OBSERVER_MODE);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    if (clientQuorumServers != null &amp;&amp; !clientZkObserverMode) {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>      // we need to take care of the ZK information synchronization<a name="line.769"></a>
-<span class="sourceLineNo">770</span>      // if given client ZK are not observer nodes<a name="line.770"></a>
-<span class="sourceLineNo">771</span>      ZKWatcher clientZkWatcher = new ZKWatcher(conf,<a name="line.771"></a>
-<span class="sourceLineNo">772</span>          getProcessName() + ":" + rpcServices.getSocketAddress().getPort() + "-clientZK", this,<a name="line.772"></a>
-<span class="sourceLineNo">773</span>          false, true);<a name="line.773"></a>
-<span class="sourceLineNo">774</span>      this.metaLocationSyncer = new MetaLocationSyncer(zooKeeper, clientZkWatcher, this);<a name="line.774"></a>
-<span class="sourceLineNo">775</span>      this.metaLocationSyncer.start();<a name="line.775"></a>
-<span class="sourceLineNo">776</span>      this.masterAddressSyncer = new MasterAddressSyncer(zooKeeper, clientZkWatcher, this);<a name="line.776"></a>
-<span class="sourceLineNo">777</span>      this.masterAddressSyncer.start();<a name="line.777"></a>
-<span class="sourceLineNo">778</span>      // set cluster id is a one-go effort<a name="line.778"></a>
-<span class="sourceLineNo">779</span>      ZKClusterId.setClusterId(clientZkWatcher, fileSystemManager.getClusterId());<a name="line.779"></a>
-<span class="sourceLineNo">780</span>    }<a name="line.780"></a>
-<span class="sourceLineNo">781</span><a name="line.781"></a>
-<span class="sourceLineNo">782</span>    // Set the cluster as up.  If new RSs, they'll be waiting on this before<a name="line.782"></a>
-<span class="sourceLineNo">783</span>    // going ahead with their startup.<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    boolean wasUp = this.clusterStatusTracker.isClusterUp();<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    if (!wasUp) this.clusterStatusTracker.setClusterUp();<a name="line.785"></a>
-<span class="sourceLineNo">786</span><a name="line.786"></a>
-<span class="sourceLineNo">787</span>    LOG.info("Active/primary master=" + this.serverName +<a name="line.787"></a>
-<span class="sourceLineNo">788</span>        ", sessionid=0x" +<a name="line.788"></a>
-<span class="sourceLineNo">789</span>        Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()) +<a name="line.789"></a>
-<span class="sourceLineNo">790</span>        ", setting cluster-up flag (Was=" + wasUp + ")");<a name="line.790"></a>
-<span class="sourceLineNo">791</span><a name="line.791"></a>
-<span class="sourceLineNo">792</span>    // create/initialize the snapshot manager and other procedure managers<a name="line.792"></a>
-<span class="sourceLineNo">793</span>    this.snapshotManager = new SnapshotManager();<a name="line.793"></a>
-<span class="sourceLineNo">794</span>    this.mpmHost = new MasterProcedureManagerHost();<a name="line.794"></a>
-<span class="sourceLineNo">795</span>    this.mpmHost.register(this.snapshotManager);<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    this.mpmHost.register(new MasterFlushTableProcedureManager());<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    this.mpmHost.loadProcedures(conf);<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    this.mpmHost.initialize(this, this.metricsMaster);<a name="line.798"></a>
-<span class="sourceLineNo">799</span>  }<a name="line.799"></a>
-<span class="sourceLineNo">800</span><a name="line.800"></a>
-<span class="sourceLineNo">801</span>  /**<a name="line.801"></a>
-<span class="sourceLineNo">802</span>   * Finish initialization of HMaster after becoming the primary master.<a name="line.802"></a>
-<span class="sourceLineNo">803</span>   * &lt;p/&gt;<a name="line.803"></a>
-<span class="sourceLineNo">804</span>   * The startup order is a bit complicated but very important, do not change it unless you know<a name="line.804"></a>
-<span class="sourceLineNo">805</span>   * what you are doing.<a name="line.805"></a>
-<span class="sourceLineNo">806</span>   * &lt;ol&gt;<a name="line.806"></a>
-<span class="sourceLineNo">807</span>   * &lt;li&gt;Initialize file system based components - file system manager, wal manager, table<a name="line.807"></a>
-<span class="sourceLineNo">808</span>   * descriptors, etc&lt;/li&gt;<a name="line.808"></a>
-<span class="sourceLineNo">809</span>   * &lt;li&gt;Publish cluster id&lt;/li&gt;<a name="line.809"></a>
-<span class="sourceLineNo">810</span>   * &lt;li&gt;Here comes the most complicated part - initialize server manager, assignment manager and<a name="line.810"></a>
-<span class="sourceLineNo">811</span>   * region server tracker<a name="line.811"></a>
-<span class="sourceLineNo">812</span>   * &lt;ol type='i'&gt;<a name="line.812"></a>
-<span class="sourceLineNo">813</span>   * &lt;li&gt;Create server manager&lt;/li&gt;<a name="line.813"></a>
-<span class="sourceLineNo">814</span>   * &lt;li&gt;Create procedure executor, load the procedures, but do not start workers. We will start it<a name="line.814"></a>
-<span class="sourceLineNo">815</span>   * later after we finish scheduling SCPs to avoid scheduling duplicated SCPs for the same<a name="line.815"></a>
-<span class="sourceLineNo">816</span>   * server&lt;/li&gt;<a name="line.816"></a>
-<span class="sourceLineNo">817</span>   * &lt;li&gt;Create assignment manager and start it, load the meta region state, but do not load data<a name="line.817"></a>
-<span class="sourceLineNo">818</span>   * from meta region&lt;/li&gt;<a name="line.818"></a>
-<span class="sourceLineNo">819</span>   * &lt;li&gt;Start region server tracker, construct the online servers set and find out dead servers and<a name="line.819"></a>
-<span class="sourceLineNo">820</span>   * schedule SCP for them. The online servers will be constructed by scanning zk, and we will also<a name="line.820"></a>
-<span class="sourceLineNo">821</span>   * scan the wal directory to find out possible live region servers, and the differences between<a name="line.821"></a>
-<span class="sourceLineNo">822</span>   * these two sets are the dead servers&lt;/li&gt;<a name="line.822"></a>
-<span class="sourceLineNo">823</span>   * &lt;/ol&gt;<a name="line.823"></a>
-<span class="sourceLineNo">824</span>   * &lt;/li&gt;<a name="line.824"></a>
-<span class="sourceLineNo">825</span>   * &lt;li&gt;If this is a new deploy, schedule a InitMetaProcedure to initialize meta&lt;/li&gt;<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   * &lt;li&gt;Start necessary service threads - balancer, catalog janior, executor services, and also the<a name="line.826"></a>
-<span class="sourceLineNo">827</span>   * procedure executor, etc. Notice that the balancer must be created first as assignment manager<a name="line.827"></a>
-<span class="sourceLineNo">828</span>   * may use it when assigning regions.&lt;/li&gt;<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * &lt;li&gt;Wait for meta to be initialized if necesssary, start table state manager.&lt;/li&gt;<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   * &lt;li&gt;Wait for enough region servers to check-in&lt;/li&gt;<a name="line.830"></a>
-<span class="sourceLineNo">831</span>   * &lt;li&gt;Let assignment manager load data from meta and construct region states&lt;/li&gt;<a name="line.831"></a>
-<span class="sourceLineNo">832</span>   * &lt;li&gt;Start all other things such as chore services, etc&lt;/li&gt;<a name="line.832"></a>
-<span class="sourceLineNo">833</span>   * &lt;/ol&gt;<a name="line.833"></a>
-<span class="sourceLineNo">834</span>   * &lt;p/&gt;<a name="line.834"></a>
-<span class="sourceLineNo">835</span>   * Notice that now we will not schedule a special procedure to make meta online(unless the first<a name="line.835"></a>
-<span class="sourceLineNo">836</span>   * time where meta has not been created yet), we will rely on SCP to bring meta online.<a name="line.836"></a>
-<span class="sourceLineNo">837</span>   */<a name="line.837"></a>
-<span class="sourceLineNo">838</span>  private void finishActiveMasterInitialization(MonitoredTask status) throws IOException,<a name="line.838"></a>
-<span class="sourceLineNo">839</span>          InterruptedException, KeeperException, ReplicationException {<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    Thread zombieDetector = new Thread(new InitializationMonitor(this),<a name="line.840"></a>
-<span class="sourceLineNo">841</span>        "ActiveMasterInitializationMonitor-" + System.currentTimeMillis());<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    zombieDetector.setDaemon(true);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    zombieDetector.start();<a name="line.843"></a>
-<span class="sourceLineNo">844</span><a name="line.844"></a>
-<span class="sourceLineNo">845</span>    /*<a name="line.845"></a>
-<span class="sourceLineNo">846</span>     * We are active master now... go initialize components we need to run.<a name="line.846"></a>
-<span class="sourceLineNo">847</span>     */<a name="line.847"></a>
-<span class="sourceLineNo">848</span>    status.setStatus("Initializing Master file system");<a name="line.848"></a>
-<span class="sourceLineNo">849</span><a name="line.849"></a>
-<span class="sourceLineNo">850</span>    this.masterActiveTime = System.currentTimeMillis();<a name="line.850"></a>
-<span class="sourceLineNo">851</span>    // TODO: Do this using Dependency Injection, using PicoContainer, Guice or Spring.<a name="line.851"></a>
-<span class="sourceLineNo">852</span>    // Initialize the chunkCreator<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    initializeMemStoreChunkCreator();<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    this.fileSystemManager = new MasterFileSystem(conf);<a name="line.854"></a>
-<span class="sourceLineNo">855</span>    this.walManager = new MasterWalManager(this);<a name="line.855"></a>
-<span class="sourceLineNo">856</span><a name="line.856"></a>
-<span class="sourceLineNo">857</span>    // enable table descriptors cache<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    this.tableDescriptors.setCacheOn();<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>    // warm-up HTDs cache on master initialization<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    if (preLoadTableDescriptors) {<a name="line.861"></a>
-<span class="sourceLineNo">862</span>      status.setStatus("Pre-loading table descriptors");<a name="line.862"></a>
-<span class="sourceLineNo">863</span>      this.tableDescriptors.getAll();<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    }<a name="line.864"></a>
-<span class="sourceLineNo">865</span><a name="line.865"></a>
-<span class="sourceLineNo">866</span>    // Publish cluster ID; set it in Master too. The superclass RegionServer does this later but<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    // only after it has checked in with the Master. At least a few tests ask Master for clusterId<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    // before it has called its run method and before RegionServer has done the reportForDuty.<a name="line.868"></a>
-<span class="sourceLineNo">869</span>    ClusterId clusterId = fileSystemManager.getClusterId();<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    status.setStatus("Publishing Cluster ID " + clusterId + " in ZooKeeper");<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    ZKClusterId.setClusterId(this.zooKeeper, fileSystemManager.getClusterId());<a name="line.871"></a>
-<span class="sourceLineNo">872</span>    this.clusterId = clusterId.toString();<a name="line.872"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.exceptions.MergeRegionException;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.master.MasterRpcServices.BalanceSwitchMode;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.master.assignment.AssignmentManager;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.master.assignment.MergeTableRegionsProcedure;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.master.assignment.RegionStates;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.master.balancer.BalancerChore;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.master.balancer.ClusterStatusChore;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.master.cleaner.CleanerChore;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.master.cleaner.HFileCleaner;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.master.cleaner.LogCleaner;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.master.cleaner.ReplicationBarrierCleaner;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.master.locking.LockManager;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan.PlanType;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerFactory;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.master.procedure.CreateTableProcedure;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.master.procedure.DeleteNamespaceProcedure;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.master.procedure.DisableTableProcedure;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.master.procedure.EnableTableProcedure;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.master.procedure.InitMetaProcedure;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.master.procedure.MasterPr

<TRUNCATED>

[29/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.


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

Branch: refs/heads/asf-site
Commit: dbe3a233f0279438e0af882c3ba71661e35cd807
Parents: d2d40e0
Author: jenkins <bu...@apache.org>
Authored: Tue Jul 10 17:25:30 2018 +0000
Committer: jenkins <bu...@apache.org>
Committed: Tue Jul 10 17:25:30 2018 +0000

----------------------------------------------------------------------
 acid-semantics.html                             |    4 +-
 apache_hbase_reference_guide.pdf                | 4792 ++++++------
 apidocs/index-all.html                          |    2 +
 apidocs/org/apache/hadoop/hbase/ServerLoad.html |    2 +-
 .../org/apache/hadoop/hbase/ServerMetrics.html  |   41 +-
 .../org/apache/hadoop/hbase/ServerMetrics.html  |  109 +-
 book.html                                       |   30 +-
 bulk-loads.html                                 |    4 +-
 checkstyle-aggregate.html                       |  340 +-
 coc.html                                        |    4 +-
 dependencies.html                               |    4 +-
 dependency-convergence.html                     |    4 +-
 dependency-info.html                            |    4 +-
 dependency-management.html                      |    4 +-
 devapidocs/constant-values.html                 |    6 +-
 devapidocs/index-all.html                       |   82 +-
 .../org/apache/hadoop/hbase/ServerLoad.html     |    2 +-
 .../org/apache/hadoop/hbase/ServerMetrics.html  |   41 +-
 .../ServerMetricsBuilder.ServerMetricsImpl.html |  100 +-
 .../hadoop/hbase/ServerMetricsBuilder.html      |   88 +-
 .../hadoop/hbase/backup/package-tree.html       |    6 +-
 .../hadoop/hbase/class-use/RegionMetrics.html   |    3 +-
 .../hadoop/hbase/class-use/ServerMetrics.html   |    8 +-
 .../hbase/class-use/ServerMetricsBuilder.html   |    4 +
 .../hadoop/hbase/class-use/ServerName.html      |  108 +-
 .../org/apache/hadoop/hbase/class-use/Size.html |    3 +-
 .../hadoop/hbase/client/VersionInfoUtil.html    |   38 +-
 .../hadoop/hbase/client/class-use/Admin.html    |   29 +-
 .../hadoop/hbase/client/package-tree.html       |   24 +-
 .../apache/hadoop/hbase/client/package-use.html |   29 +-
 .../hadoop/hbase/coprocessor/package-tree.html  |    2 +-
 .../hadoop/hbase/filter/package-tree.html       |    8 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |    4 +-
 .../apache/hadoop/hbase/ipc/package-tree.html   |    2 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |    2 +-
 .../master/HMaster.InitializationMonitor.html   |   20 +-
 .../master/HMaster.MasterStoppedException.html  |    4 +-
 .../hbase/master/HMaster.RedirectServlet.html   |   12 +-
 .../master/HMaster.TableDescriptorGetter.html   |    4 +-
 .../org/apache/hadoop/hbase/master/HMaster.html |  476 +-
 .../MasterRpcServices.BalanceSwitchMode.html    |    6 +-
 .../hadoop/hbase/master/MasterRpcServices.html  |  212 +-
 .../hbase/master/RegionServerTracker.html       |    6 +-
 .../ServerManager.FlushedSequenceIdFlusher.html |    6 +-
 .../hadoop/hbase/master/ServerManager.html      |  101 +-
 .../hadoop/hbase/master/package-tree.html       |    6 +-
 .../hbase/master/procedure/package-tree.html    |    2 +-
 .../hadoop/hbase/monitoring/package-tree.html   |    2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |   16 +-
 .../hadoop/hbase/procedure2/package-tree.html   |    4 +-
 .../hadoop/hbase/quotas/package-tree.html       |   10 +-
 .../hadoop/hbase/regionserver/package-tree.html |   16 +-
 .../regionserver/querymatcher/package-tree.html |    4 +-
 .../hbase/regionserver/wal/package-tree.html    |    2 +-
 .../class-use/ReplicationLoadSink.html          |    3 +-
 .../class-use/ReplicationLoadSource.html        |    3 +-
 .../replication/regionserver/package-tree.html  |    2 +-
 .../hadoop/hbase/rest/model/package-tree.html   |    2 +-
 .../hadoop/hbase/security/package-tree.html     |    2 +-
 .../hadoop/hbase/thrift/package-tree.html       |    4 +-
 ...ocessorValidator.ResolverUrlClassLoader.html |   12 +-
 .../tool/coprocessor/CoprocessorValidator.html  |  228 +-
 .../tool/coprocessor/CoprocessorViolation.html  |  105 +-
 ...ocessorValidator.ResolverUrlClassLoader.html |   10 +
 .../CoprocessorViolation.Severity.html          |    6 +-
 .../class-use/CoprocessorViolation.html         |   42 +-
 .../apache/hadoop/hbase/util/package-tree.html  |    8 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |    2 +-
 .../org/apache/hadoop/hbase/ServerMetrics.html  |  109 +-
 .../ServerMetricsBuilder.ServerMetricsImpl.html |  550 +-
 .../hadoop/hbase/ServerMetricsBuilder.html      |  550 +-
 .../org/apache/hadoop/hbase/Version.html        |    6 +-
 .../hadoop/hbase/client/VersionInfoUtil.html    |  128 +-
 .../master/HMaster.InitializationMonitor.html   | 7332 +++++++++---------
 .../master/HMaster.MasterStoppedException.html  | 7332 +++++++++---------
 .../hbase/master/HMaster.RedirectServlet.html   | 7332 +++++++++---------
 .../master/HMaster.TableDescriptorGetter.html   | 7332 +++++++++---------
 .../org/apache/hadoop/hbase/master/HMaster.html | 7332 +++++++++---------
 .../MasterRpcServices.BalanceSwitchMode.html    | 4261 +++++-----
 .../hadoop/hbase/master/MasterRpcServices.html  | 4261 +++++-----
 .../hbase/master/RegionServerTracker.html       |  115 +-
 .../ServerManager.FlushedSequenceIdFlusher.html |  342 +-
 .../hadoop/hbase/master/ServerManager.html      |  342 +-
 ...signmentManager.RegionInTransitionChore.html |    4 +-
 ...ssignmentManager.RegionInTransitionStat.html |    4 +-
 .../master/assignment/AssignmentManager.html    |    4 +-
 ...rocedureDispatcher.AbstractRSRemoteCall.html |    2 +-
 ...ocedureDispatcher.CloseRegionRemoteCall.html |    2 +-
 ...ispatcher.CompatRemoteProcedureResolver.html |    2 +-
 .../RSProcedureDispatcher.DeadRSRemoteCall.html |    2 +-
 ...eDispatcher.ExecuteProceduresRemoteCall.html |    2 +-
 ...rocedureDispatcher.OpenRegionRemoteCall.html |    2 +-
 ...rocedureDispatcher.RegionCloseOperation.html |    2 +-
 ...ProcedureDispatcher.RegionOpenOperation.html |    2 +-
 .../RSProcedureDispatcher.RegionOperation.html  |    2 +-
 ...edureDispatcher.RemoteProcedureResolver.html |    2 +-
 .../RSProcedureDispatcher.ServerOperation.html  |    2 +-
 .../master/procedure/RSProcedureDispatcher.html |    2 +-
 .../hadoop/hbase/tool/PreUpgradeValidator.html  |   26 +-
 ...ocessorValidator.ResolverUrlClassLoader.html |  527 +-
 .../tool/coprocessor/CoprocessorValidator.html  |  527 +-
 .../CoprocessorViolation.Severity.html          |   60 +-
 .../tool/coprocessor/CoprocessorViolation.html  |   60 +-
 downloads.html                                  |    4 +-
 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            |    1 -
 testdevapidocs/allclasses-noframe.html          |    1 -
 testdevapidocs/index-all.html                   |   24 +-
 .../hadoop/hbase/backup/package-tree.html       |    2 +-
 .../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/regionserver/package-tree.html |    2 +-
 .../apache/hadoop/hbase/test/package-tree.html  |    4 +-
 .../CoprocessorValidatorTest.MissingClass.html  |    4 +-
 ...orValidatorTest.MissingClassClassLoader.html |    6 +-
 ...essorValidatorTest.MissingClassObserver.html |    6 +-
 ...sorValidatorTest.ObsoleteMethodObserver.html |   10 +-
 .../CoprocessorValidatorTest.TestObserver.html  |  347 -
 .../coprocessor/CoprocessorValidatorTest.html   |  138 +-
 .../CoprocessorValidatorTest.TestObserver.html  |  125 -
 .../hbase/tool/coprocessor/package-frame.html   |    1 -
 .../hbase/tool/coprocessor/package-summary.html |    4 -
 .../hbase/tool/coprocessor/package-tree.html    |    1 -
 .../apache/hadoop/hbase/wal/package-tree.html   |    4 +-
 testdevapidocs/overview-tree.html               |    1 -
 .../hbase/master/TestClockSkewDetection.html    |   10 +-
 .../hadoop/hbase/master/TestRestartCluster.html |    2 +-
 .../CoprocessorValidatorTest.MissingClass.html  |  392 +-
 ...orValidatorTest.MissingClassClassLoader.html |  392 +-
 ...essorValidatorTest.MissingClassObserver.html |  392 +-
 ...sorValidatorTest.ObsoleteMethodObserver.html |  392 +-
 .../CoprocessorValidatorTest.TestObserver.html  |  249 -
 .../coprocessor/CoprocessorValidatorTest.html   |  392 +-
 155 files changed, 29784 insertions(+), 29059 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index 40583b9..04fedbf 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 


[25/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html b/devapidocs/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html
index c4016ee..7262326 100644
--- a/devapidocs/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.216">ServerMetricsBuilder.ServerMetricsImpl</a>
+<pre>private static class <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.222">ServerMetricsBuilder.ServerMetricsImpl</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 <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></pre>
 </li>
@@ -187,6 +187,10 @@ implements <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" titl
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#usedHeapSize">usedHeapSize</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>private <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/ServerMetricsBuilder.ServerMetricsImpl.html#version">version</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#versionNumber">versionNumber</a></span></code>&nbsp;</td>
 </tr>
@@ -205,8 +209,9 @@ implements <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" titl
 <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/ServerMetricsBuilder.ServerMetricsImpl.html#ServerMetricsImpl-org.apache.hadoop.hbase.ServerName-int-long-long-org.apache.hadoop.hbase.Size-org.apache.hadoop.hbase.Size-int-java.util.List-org.apache.hadoop.hbase.replication.ReplicationLoadSink-java.util.Map-java.util.Set-long-long-">ServerMetricsImpl</a></span>(<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#ServerMetricsImpl-org.apache.hadoop.hbase.ServerName-int-java.lang.String-long-long-org.apache.hadoop.hbase.Size-org.apache.hadoop.hbase.Size-int-java.util.List-org.apache.hadoop.hbase.replication.ReplicationLoadSink-java.util.Map-java.util.Set-long-long-">ServerMetricsImpl</a></span>(<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                  int&nbsp;versionNumber,
+                 <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;version,
                  long&nbsp;requestCountPerSecond,
                  long&nbsp;requestCount,
                  <a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;usedHeapSize,
@@ -289,10 +294,14 @@ implements <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" titl
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#getUsedHeapSize--">getUsedHeapSize</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i12" class="altColor">
+<td class="colFirst"><code><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/ServerMetricsBuilder.ServerMetricsImpl.html#getVersion--">getVersion</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#getVersionNumber--">getVersionNumber</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code><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/ServerMetricsBuilder.ServerMetricsImpl.html#toString--">toString</a></span>()</code>&nbsp;</td>
 </tr>
@@ -324,7 +333,7 @@ implements <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>serverName</h4>
-<pre>private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.217">serverName</a></pre>
+<pre>private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.223">serverName</a></pre>
 </li>
 </ul>
 <a name="versionNumber">
@@ -333,7 +342,16 @@ implements <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>versionNumber</h4>
-<pre>private final&nbsp;int <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.218">versionNumber</a></pre>
+<pre>private final&nbsp;int <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.224">versionNumber</a></pre>
+</li>
+</ul>
+<a name="version">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>version</h4>
+<pre>private 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/ServerMetricsBuilder.ServerMetricsImpl.html#line.225">version</a></pre>
 </li>
 </ul>
 <a name="requestCountPerSecond">
@@ -342,7 +360,7 @@ implements <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>requestCountPerSecond</h4>
-<pre>private final&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.219">requestCountPerSecond</a></pre>
+<pre>private final&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.226">requestCountPerSecond</a></pre>
 </li>
 </ul>
 <a name="requestCount">
@@ -351,7 +369,7 @@ implements <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>requestCount</h4>
-<pre>private final&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.220">requestCount</a></pre>
+<pre>private final&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.227">requestCount</a></pre>
 </li>
 </ul>
 <a name="usedHeapSize">
@@ -360,7 +378,7 @@ implements <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>usedHeapSize</h4>
-<pre>private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.221">usedHeapSize</a></pre>
+<pre>private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.228">usedHeapSize</a></pre>
 </li>
 </ul>
 <a name="maxHeapSize">
@@ -369,7 +387,7 @@ implements <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>maxHeapSize</h4>
-<pre>private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.222">maxHeapSize</a></pre>
+<pre>private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.229">maxHeapSize</a></pre>
 </li>
 </ul>
 <a name="infoServerPort">
@@ -378,7 +396,7 @@ implements <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>infoServerPort</h4>
-<pre>private final&nbsp;int <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.223">infoServerPort</a></pre>
+<pre>private final&nbsp;int <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.230">infoServerPort</a></pre>
 </li>
 </ul>
 <a name="sources">
@@ -387,7 +405,7 @@ implements <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>sources</h4>
-<pre>private final&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="../../../../org/apache/hadoop/hbase/replication/ReplicationLoadSource.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSource</a>&gt; <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.224">sources</a></pre>
+<pre>private final&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="../../../../org/apache/hadoop/hbase/replication/ReplicationLoadSource.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSource</a>&gt; <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.231">sources</a></pre>
 </li>
 </ul>
 <a name="sink">
@@ -397,7 +415,7 @@ implements <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" titl
 <li class="blockList">
 <h4>sink</h4>
 <pre>@Nullable
-private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/ReplicationLoadSink.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSink</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.226">sink</a></pre>
+private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/ReplicationLoadSink.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSink</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.233">sink</a></pre>
 </li>
 </ul>
 <a name="regionStatus">
@@ -406,7 +424,7 @@ private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Repl
 <ul class="blockList">
 <li class="blockList">
 <h4>regionStatus</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="../../../../org/apache/hadoop/hbase/RegionMetrics.html" title="interface in org.apache.hadoop.hbase">RegionMetrics</a>&gt; <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.227">regionStatus</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="../../../../org/apache/hadoop/hbase/RegionMetrics.html" title="interface in org.apache.hadoop.hbase">RegionMetrics</a>&gt; <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.234">regionStatus</a></pre>
 </li>
 </ul>
 <a name="coprocessorNames">
@@ -415,7 +433,7 @@ private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Repl
 <ul class="blockList">
 <li class="blockList">
 <h4>coprocessorNames</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<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>&gt; <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.228">coprocessorNames</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<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>&gt; <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.235">coprocessorNames</a></pre>
 </li>
 </ul>
 <a name="reportTimestamp">
@@ -424,7 +442,7 @@ private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Repl
 <ul class="blockList">
 <li class="blockList">
 <h4>reportTimestamp</h4>
-<pre>private final&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.229">reportTimestamp</a></pre>
+<pre>private final&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.236">reportTimestamp</a></pre>
 </li>
 </ul>
 <a name="lastReportTimestamp">
@@ -433,7 +451,7 @@ private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Repl
 <ul class="blockListLast">
 <li class="blockList">
 <h4>lastReportTimestamp</h4>
-<pre>private final&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.230">lastReportTimestamp</a></pre>
+<pre>private final&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.237">lastReportTimestamp</a></pre>
 </li>
 </ul>
 </li>
@@ -444,14 +462,15 @@ private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Repl
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="ServerMetricsImpl-org.apache.hadoop.hbase.ServerName-int-long-long-org.apache.hadoop.hbase.Size-org.apache.hadoop.hbase.Size-int-java.util.List-org.apache.hadoop.hbase.replication.ReplicationLoadSink-java.util.Map-java.util.Set-long-long-">
+<a name="ServerMetricsImpl-org.apache.hadoop.hbase.ServerName-int-java.lang.String-long-long-org.apache.hadoop.hbase.Size-org.apache.hadoop.hbase.Size-int-java.util.List-org.apache.hadoop.hbase.replication.ReplicationLoadSink-java.util.Map-java.util.Set-long-long-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ServerMetricsImpl</h4>
-<pre><a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.232">ServerMetricsImpl</a>(<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+<pre><a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.239">ServerMetricsImpl</a>(<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                   int&nbsp;versionNumber,
+                  <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;version,
                   long&nbsp;requestCountPerSecond,
                   long&nbsp;requestCount,
                   <a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;usedHeapSize,
@@ -479,7 +498,7 @@ private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Repl
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerName</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.253">getServerName</a>()</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.261">getServerName</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getServerName--">getServerName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></dd>
@@ -492,7 +511,7 @@ private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Repl
 <ul class="blockList">
 <li class="blockList">
 <h4>getVersionNumber</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.258">getVersionNumber</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.266">getVersionNumber</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getVersionNumber--">getVersionNumber</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></dd>
@@ -501,13 +520,28 @@ private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Repl
 </dl>
 </li>
 </ul>
+<a name="getVersion--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getVersion</h4>
+<pre>public&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/ServerMetricsBuilder.ServerMetricsImpl.html#line.270">getVersion</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getVersion--">getVersion</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the string type version of a regionserver.</dd>
+</dl>
+</li>
+</ul>
 <a name="getRequestCountPerSecond--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getRequestCountPerSecond</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.263">getRequestCountPerSecond</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.275">getRequestCountPerSecond</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getRequestCountPerSecond--">getRequestCountPerSecond</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></dd>
@@ -522,7 +556,7 @@ private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Repl
 <ul class="blockList">
 <li class="blockList">
 <h4>getRequestCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.268">getRequestCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.280">getRequestCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getRequestCount--">getRequestCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></dd>
@@ -537,7 +571,7 @@ private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Repl
 <ul class="blockList">
 <li class="blockList">
 <h4>getUsedHeapSize</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.273">getUsedHeapSize</a>()</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.285">getUsedHeapSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getUsedHeapSize--">getUsedHeapSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></dd>
@@ -552,7 +586,7 @@ private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Repl
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxHeapSize</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.278">getMaxHeapSize</a>()</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.290">getMaxHeapSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getMaxHeapSize--">getMaxHeapSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></dd>
@@ -567,7 +601,7 @@ private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Repl
 <ul class="blockList">
 <li class="blockList">
 <h4>getInfoServerPort</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.283">getInfoServerPort</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.295">getInfoServerPort</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getInfoServerPort--">getInfoServerPort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></dd>
@@ -580,7 +614,7 @@ private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Repl
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplicationLoadSourceList</h4>
-<pre>public&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="../../../../org/apache/hadoop/hbase/replication/ReplicationLoadSource.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSource</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.288">getReplicationLoadSourceList</a>()</pre>
+<pre>public&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="../../../../org/apache/hadoop/hbase/replication/ReplicationLoadSource.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSource</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.300">getReplicationLoadSourceList</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getReplicationLoadSourceList--">ServerMetrics</a></code></span></div>
 <div class="block">Call directly from client such as hbase shell</div>
 <dl>
@@ -597,7 +631,7 @@ private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Repl
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplicationLoadSink</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/ReplicationLoadSink.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSink</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.293">getReplicationLoadSink</a>()</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/ReplicationLoadSink.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSink</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.305">getReplicationLoadSink</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getReplicationLoadSink--">ServerMetrics</a></code></span></div>
 <div class="block">Call directly from client such as hbase shell</div>
 <dl>
@@ -614,7 +648,7 @@ private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Repl
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionMetrics</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="../../../../org/apache/hadoop/hbase/RegionMetrics.html" title="interface in org.apache.hadoop.hbase">RegionMetrics</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.298">getRegionMetrics</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="../../../../org/apache/hadoop/hbase/RegionMetrics.html" title="interface in org.apache.hadoop.hbase">RegionMetrics</a>&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.310">getRegionMetrics</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getRegionMetrics--">getRegionMetrics</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></dd>
@@ -629,7 +663,7 @@ private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Repl
 <ul class="blockList">
 <li class="blockList">
 <h4>getCoprocessorNames</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<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>&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.303">getCoprocessorNames</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<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>&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.315">getCoprocessorNames</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getCoprocessorNames--">ServerMetrics</a></code></span></div>
 <div class="block">Return the RegionServer-level and Region-level coprocessors</div>
 <dl>
@@ -646,7 +680,7 @@ private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Repl
 <ul class="blockList">
 <li class="blockList">
 <h4>getReportTimestamp</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.308">getReportTimestamp</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.320">getReportTimestamp</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getReportTimestamp--">getReportTimestamp</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></dd>
@@ -661,7 +695,7 @@ private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Repl
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastReportTimestamp</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.313">getLastReportTimestamp</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#line.325">getLastReportTimestamp</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html#getLastReportTimestamp--">getLastReportTimestamp</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></dd>
@@ -676,7 +710,7 @@ private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Repl
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&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/ServerMetricsBuilder.ServerMetricsImpl.html#line.318">toString</a>()</pre>
+<pre>public&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/ServerMetricsBuilder.ServerMetricsImpl.html#line.330">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><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></code>&nbsp;in class&nbsp;<code><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></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/ServerMetricsBuilder.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ServerMetricsBuilder.html b/devapidocs/org/apache/hadoop/hbase/ServerMetricsBuilder.html
index 41e4ccf..cb2dd35 100644
--- a/devapidocs/org/apache/hadoop/hbase/ServerMetricsBuilder.html
+++ b/devapidocs/org/apache/hadoop/hbase/ServerMetricsBuilder.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":9,"i2":9,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9};
+var methods = {"i0":10,"i1":9,"i2":9,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":9,"i18":9,"i19":9,"i20":9,"i21":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";
@@ -198,6 +198,10 @@ 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/ServerMetricsBuilder.html#usedHeapSize">usedHeapSize</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>private <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/ServerMetricsBuilder.html#version">version</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#versionNumber">versionNumber</a></span></code>&nbsp;</td>
 </tr>
@@ -249,8 +253,9 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i3" class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#of-org.apache.hadoop.hbase.ServerName-int-">of</a></span>(<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
-  int&nbsp;versionNumber)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#of-org.apache.hadoop.hbase.ServerName-int-java.lang.String-">of</a></span>(<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
+  int&nbsp;versionNumber,
+  <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;version)</code>&nbsp;</td>
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a></code></td>
@@ -298,29 +303,34 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i15" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#setVersionNumber-int-">setVersionNumber</a></span>(int&nbsp;versionNumber)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#setVersion-java.lang.String-">setVersion</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;version)</code>&nbsp;</td>
 </tr>
 <tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#setVersionNumber-int-">setVersionNumber</a></span>(int&nbsp;versionNumber)</code>&nbsp;</td>
+</tr>
+<tr id="i17" 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;org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.Coprocessor&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#toCoprocessor-java.util.Collection-">toCoprocessor</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<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>&gt;&nbsp;names)</code>&nbsp;</td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>static org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#toServerLoad-org.apache.hadoop.hbase.ServerMetrics-">toServerLoad</a></span>(<a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a>&nbsp;metrics)</code>&nbsp;</td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#toServerMetrics-org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.LiveServerInfo-">toServerMetrics</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.LiveServerInfo&nbsp;serverInfo)</code>&nbsp;</td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#toServerMetrics-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad-">toServerMetrics</a></span>(<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad&nbsp;serverLoadPB)</code>&nbsp;</td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#toServerMetrics-org.apache.hadoop.hbase.ServerName-int-org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad-">toServerMetrics</a></span>(<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#toServerMetrics-org.apache.hadoop.hbase.ServerName-int-java.lang.String-org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad-">toServerMetrics</a></span>(<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                int&nbsp;versionNumber,
+               <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;version,
                org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad&nbsp;serverLoadPB)</code>&nbsp;</td>
 </tr>
 </table>
@@ -351,7 +361,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>serverName</h4>
-<pre>private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.121">serverName</a></pre>
+<pre>private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.120">serverName</a></pre>
 </li>
 </ul>
 <a name="versionNumber">
@@ -360,7 +370,16 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>versionNumber</h4>
-<pre>private&nbsp;int <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.122">versionNumber</a></pre>
+<pre>private&nbsp;int <a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.121">versionNumber</a></pre>
+</li>
+</ul>
+<a name="version">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>version</h4>
+<pre>private&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/ServerMetricsBuilder.html#line.122">version</a></pre>
 </li>
 </ul>
 <a name="requestCountPerSecond">
@@ -503,14 +522,15 @@ private&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Replicatio
 </dl>
 </li>
 </ul>
-<a name="of-org.apache.hadoop.hbase.ServerName-int-">
+<a name="of-org.apache.hadoop.hbase.ServerName-int-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>of</h4>
 <pre>public static&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.51">of</a>(<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
-                               int&nbsp;versionNumber)</pre>
+                               int&nbsp;versionNumber,
+                               <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;version)</pre>
 </li>
 </ul>
 <a name="toServerMetrics-org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.LiveServerInfo-">
@@ -532,7 +552,7 @@ private&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Replicatio
                                             org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad&nbsp;serverLoadPB)</pre>
 </li>
 </ul>
-<a name="toServerMetrics-org.apache.hadoop.hbase.ServerName-int-org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad-">
+<a name="toServerMetrics-org.apache.hadoop.hbase.ServerName-int-java.lang.String-org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad-">
 <!--   -->
 </a>
 <ul class="blockList">
@@ -540,6 +560,7 @@ private&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Replicatio
 <h4>toServerMetrics</h4>
 <pre>public static&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.65">toServerMetrics</a>(<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                                             int&nbsp;versionNumber,
+                                            <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;version,
                                             org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad&nbsp;serverLoadPB)</pre>
 </li>
 </ul>
@@ -549,7 +570,7 @@ private&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Replicatio
 <ul class="blockList">
 <li class="blockList">
 <h4>toCoprocessor</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;org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.Coprocessor&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.88">toCoprocessor</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<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>&gt;&nbsp;names)</pre>
+<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;org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.Coprocessor&gt;&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.87">toCoprocessor</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<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>&gt;&nbsp;names)</pre>
 </li>
 </ul>
 <a name="toServerLoad-org.apache.hadoop.hbase.ServerMetrics-">
@@ -558,7 +579,7 @@ private&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Replicatio
 <ul class="blockList">
 <li class="blockList">
 <h4>toServerLoad</h4>
-<pre>public static&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.94">toServerLoad</a>(<a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a>&nbsp;metrics)</pre>
+<pre>public static&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.93">toServerLoad</a>(<a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a>&nbsp;metrics)</pre>
 </li>
 </ul>
 <a name="newBuilder-org.apache.hadoop.hbase.ServerName-">
@@ -567,7 +588,7 @@ private&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Replicatio
 <ul class="blockList">
 <li class="blockList">
 <h4>newBuilder</h4>
-<pre>public static&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.117">newBuilder</a>(<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
+<pre>public static&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.116">newBuilder</a>(<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 </li>
 </ul>
 <a name="setVersionNumber-int-">
@@ -579,13 +600,22 @@ private&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Replicatio
 <pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.139">setVersionNumber</a>(int&nbsp;versionNumber)</pre>
 </li>
 </ul>
+<a name="setVersion-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setVersion</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.144">setVersion</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;version)</pre>
+</li>
+</ul>
 <a name="setRequestCountPerSecond-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>setRequestCountPerSecond</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.144">setRequestCountPerSecond</a>(long&nbsp;value)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.149">setRequestCountPerSecond</a>(long&nbsp;value)</pre>
 </li>
 </ul>
 <a name="setRequestCount-long-">
@@ -594,7 +624,7 @@ private&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Replicatio
 <ul class="blockList">
 <li class="blockList">
 <h4>setRequestCount</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.149">setRequestCount</a>(long&nbsp;value)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.154">setRequestCount</a>(long&nbsp;value)</pre>
 </li>
 </ul>
 <a name="setUsedHeapSize-org.apache.hadoop.hbase.Size-">
@@ -603,7 +633,7 @@ private&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Replicatio
 <ul class="blockList">
 <li class="blockList">
 <h4>setUsedHeapSize</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.154">setUsedHeapSize</a>(<a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;value)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.159">setUsedHeapSize</a>(<a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;value)</pre>
 </li>
 </ul>
 <a name="setMaxHeapSize-org.apache.hadoop.hbase.Size-">
@@ -612,7 +642,7 @@ private&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Replicatio
 <ul class="blockList">
 <li class="blockList">
 <h4>setMaxHeapSize</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.159">setMaxHeapSize</a>(<a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;value)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.164">setMaxHeapSize</a>(<a href="../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;value)</pre>
 </li>
 </ul>
 <a name="setInfoServerPort-int-">
@@ -621,7 +651,7 @@ private&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Replicatio
 <ul class="blockList">
 <li class="blockList">
 <h4>setInfoServerPort</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.164">setInfoServerPort</a>(int&nbsp;value)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.169">setInfoServerPort</a>(int&nbsp;value)</pre>
 </li>
 </ul>
 <a name="setReplicationLoadSources-java.util.List-">
@@ -630,7 +660,7 @@ private&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Replicatio
 <ul class="blockList">
 <li class="blockList">
 <h4>setReplicationLoadSources</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.169">setReplicationLoadSources</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/replication/ReplicationLoadSource.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSource</a>&gt;&nbsp;value)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.174">setReplicationLoadSources</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/replication/ReplicationLoadSource.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSource</a>&gt;&nbsp;value)</pre>
 </li>
 </ul>
 <a name="setReplicationLoadSink-org.apache.hadoop.hbase.replication.ReplicationLoadSink-">
@@ -639,7 +669,7 @@ private&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Replicatio
 <ul class="blockList">
 <li class="blockList">
 <h4>setReplicationLoadSink</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.174">setReplicationLoadSink</a>(<a href="../../../../org/apache/hadoop/hbase/replication/ReplicationLoadSink.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSink</a>&nbsp;value)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.179">setReplicationLoadSink</a>(<a href="../../../../org/apache/hadoop/hbase/replication/ReplicationLoadSink.html" title="class in org.apache.hadoop.hbase.replication">ReplicationLoadSink</a>&nbsp;value)</pre>
 </li>
 </ul>
 <a name="setRegionMetrics-java.util.List-">
@@ -648,7 +678,7 @@ private&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Replicatio
 <ul class="blockList">
 <li class="blockList">
 <h4>setRegionMetrics</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.179">setRegionMetrics</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/RegionMetrics.html" title="interface in org.apache.hadoop.hbase">RegionMetrics</a>&gt;&nbsp;value)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.184">setRegionMetrics</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/RegionMetrics.html" title="interface in org.apache.hadoop.hbase">RegionMetrics</a>&gt;&nbsp;value)</pre>
 </li>
 </ul>
 <a name="setCoprocessorNames-java.util.List-">
@@ -657,7 +687,7 @@ private&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Replicatio
 <ul class="blockList">
 <li class="blockList">
 <h4>setCoprocessorNames</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.184">setCoprocessorNames</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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;value)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.189">setCoprocessorNames</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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;value)</pre>
 </li>
 </ul>
 <a name="setReportTimestamp-long-">
@@ -666,7 +696,7 @@ private&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Replicatio
 <ul class="blockList">
 <li class="blockList">
 <h4>setReportTimestamp</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.189">setReportTimestamp</a>(long&nbsp;value)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.194">setReportTimestamp</a>(long&nbsp;value)</pre>
 </li>
 </ul>
 <a name="setLastReportTimestamp-long-">
@@ -675,7 +705,7 @@ private&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Replicatio
 <ul class="blockList">
 <li class="blockList">
 <h4>setLastReportTimestamp</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.194">setLastReportTimestamp</a>(long&nbsp;value)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.199">setLastReportTimestamp</a>(long&nbsp;value)</pre>
 </li>
 </ul>
 <a name="build--">
@@ -684,7 +714,7 @@ private&nbsp;<a href="../../../../org/apache/hadoop/hbase/replication/Replicatio
 <ul class="blockListLast">
 <li class="blockList">
 <h4>build</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.199">build</a>()</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html#line.204">build</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/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 a6b88dd..a2ca0d5 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/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>
-<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/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/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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/class-use/RegionMetrics.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/RegionMetrics.html b/devapidocs/org/apache/hadoop/hbase/class-use/RegionMetrics.html
index 6fa279a..f5559d5 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/RegionMetrics.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/RegionMetrics.html
@@ -249,8 +249,9 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#ServerMetricsImpl-org.apache.hadoop.hbase.ServerName-int-long-long-org.apache.hadoop.hbase.Size-org.apache.hadoop.hbase.Size-int-java.util.List-org.apache.hadoop.hbase.replication.ReplicationLoadSink-java.util.Map-java.util.Set-long-long-">ServerMetricsImpl</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#ServerMetricsImpl-org.apache.hadoop.hbase.ServerName-int-java.lang.String-long-long-org.apache.hadoop.hbase.Size-org.apache.hadoop.hbase.Size-int-java.util.List-org.apache.hadoop.hbase.replication.ReplicationLoadSink-java.util.Map-java.util.Set-long-long-">ServerMetricsImpl</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                  int&nbsp;versionNumber,
+                 <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;version,
                  long&nbsp;requestCountPerSecond,
                  long&nbsp;requestCount,
                  <a href="../../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;usedHeapSize,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/class-use/ServerMetrics.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/ServerMetrics.html b/devapidocs/org/apache/hadoop/hbase/class-use/ServerMetrics.html
index 4d08dc7e..2ddcf1c 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/ServerMetrics.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/ServerMetrics.html
@@ -178,8 +178,9 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ServerMetricsBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#of-org.apache.hadoop.hbase.ServerName-int-">of</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
-  int&nbsp;versionNumber)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ServerMetricsBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#of-org.apache.hadoop.hbase.ServerName-int-java.lang.String-">of</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
+  int&nbsp;versionNumber,
+  <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;version)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></td>
@@ -192,8 +193,9 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ServerMetricsBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#toServerMetrics-org.apache.hadoop.hbase.ServerName-int-org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad-">toServerMetrics</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+<td class="colLast"><span class="typeNameLabel">ServerMetricsBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#toServerMetrics-org.apache.hadoop.hbase.ServerName-int-java.lang.String-org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad-">toServerMetrics</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                int&nbsp;versionNumber,
+               <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;version,
                org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad&nbsp;serverLoadPB)</code>&nbsp;</td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/class-use/ServerMetricsBuilder.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/ServerMetricsBuilder.html b/devapidocs/org/apache/hadoop/hbase/class-use/ServerMetricsBuilder.html
index e5d9d8e..c2a0b5a 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/ServerMetricsBuilder.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/ServerMetricsBuilder.html
@@ -152,6 +152,10 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ServerMetricsBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#setVersion-java.lang.String-">setVersion</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;version)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html" title="class in org.apache.hadoop.hbase">ServerMetricsBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ServerMetricsBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#setVersionNumber-int-">setVersionNumber</a></span>(int&nbsp;versionNumber)</code>&nbsp;</td>
 </tr>
 </tbody>


[05/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index 2e37497..907b577 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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" />
@@ -742,7 +742,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-frame.html b/testdevapidocs/allclasses-frame.html
index 1035943..5303c7d 100644
--- a/testdevapidocs/allclasses-frame.html
+++ b/testdevapidocs/allclasses-frame.html
@@ -103,7 +103,6 @@
 <li><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassClassLoader.html" title="class in org.apache.hadoop.hbase.tool.coprocessor" target="classFrame">CoprocessorValidatorTest.MissingClassClassLoader</a></li>
 <li><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor" target="classFrame">CoprocessorValidatorTest.MissingClassObserver</a></li>
 <li><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor" target="classFrame">CoprocessorValidatorTest.ObsoleteMethodObserver</a></li>
-<li><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor" target="classFrame">CoprocessorValidatorTest.TestObserver</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/CreateRandomStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">CreateRandomStoreFile</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">DataBlockEncodingTool</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver" target="classFrame">DataBlockEncodingTool.Manipulation</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-noframe.html b/testdevapidocs/allclasses-noframe.html
index 4375b9f..9f36af2 100644
--- a/testdevapidocs/allclasses-noframe.html
+++ b/testdevapidocs/allclasses-noframe.html
@@ -103,7 +103,6 @@
 <li><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassClassLoader.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest.MissingClassClassLoader</a></li>
 <li><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest.MissingClassObserver</a></li>
 <li><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest.ObsoleteMethodObserver</a></li>
-<li><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest.TestObserver</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/CreateRandomStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">CreateRandomStoreFile</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.html" title="class in org.apache.hadoop.hbase.regionserver">DataBlockEncodingTool</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver">DataBlockEncodingTool.Manipulation</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index 713d55c..4383dad 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -8750,8 +8750,6 @@
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor"><span class="typeNameLink">CoprocessorValidatorTest.ObsoleteMethodObserver</span></a> - Class in <a href="org/apache/hadoop/hbase/tool/coprocessor/package-summary.html">org.apache.hadoop.hbase.tool.coprocessor</a></dt>
 <dd>&nbsp;</dd>
-<dt><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor"><span class="typeNameLink">CoprocessorValidatorTest.TestObserver</span></a> - Class in <a href="org/apache/hadoop/hbase/tool/coprocessor/package-summary.html">org.apache.hadoop.hbase.tool.coprocessor</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/visibility/TestVisibilityLabels.html#COPYRIGHT">COPYRIGHT</a></span> - Static variable in class org.apache.hadoop.hbase.security.visibility.<a href="org/apache/hadoop/hbase/security/visibility/TestVisibilityLabels.html" title="class in org.apache.hadoop.hbase.security.visibility">TestVisibilityLabels</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/visibility/TestVisibilityLabelsReplication.html#COPYRIGHT">COPYRIGHT</a></span> - Static variable in class org.apache.hadoop.hbase.security.visibility.<a href="org/apache/hadoop/hbase/security/visibility/TestVisibilityLabelsReplication.html" title="class in org.apache.hadoop.hbase.security.visibility">TestVisibilityLabelsReplication</a></dt>
@@ -39178,8 +39176,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.DelayingRegionObserver.html#start-org.apache.hadoop.hbase.CoprocessorEnvironment-">start(CoprocessorEnvironment)</a></span> - Method in class org.apache.hadoop.hbase.thrift2.<a href="org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.DelayingRegionObserver.html" title="class in org.apache.hadoop.hbase.thrift2">TestThriftHBaseServiceHandler.DelayingRegionObserver</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html#start-org.apache.hadoop.hbase.CoprocessorEnvironment-">start(CoprocessorEnvironment)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest.TestObserver</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/MultiThreadedAction.html#start-long-long-int-">start(long, long, int)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MultiThreadedAction.html" title="class in org.apache.hadoop.hbase.util">MultiThreadedAction</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/MultiThreadedReader.html#start-long-long-int-">start(long, long, int)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MultiThreadedReader.html" title="class in org.apache.hadoop.hbase.util">MultiThreadedReader</a></dt>
@@ -39748,8 +39744,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/TestNodeHealthCheckChore.StoppableImplementation.html#stop-java.lang.String-">stop(String)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TestNodeHealthCheckChore.StoppableImplementation.html" title="class in org.apache.hadoop.hbase">TestNodeHealthCheckChore.StoppableImplementation</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html#stop-org.apache.hadoop.hbase.CoprocessorEnvironment-">stop(CoprocessorEnvironment)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest.TestObserver</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/MockServer.html#stop-java.lang.String-">stop(String)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MockServer.html" title="class in org.apache.hadoop.hbase.util">MockServer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/StoppableImplementation.html#stop-java.lang.String-">stop(String)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/StoppableImplementation.html" title="class in org.apache.hadoop.hbase.util">StoppableImplementation</a></dt>
@@ -49713,8 +49707,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/filter/TestFilter.html#testFilterListWithSingleColumnValueFilter--">testFilterListWithSingleColumnValueFilter()</a></span> - Method in class org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/TestFilter.html" title="class in org.apache.hadoop.hbase.filter">TestFilter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#testFilterObservers--">testFilterObservers()</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/IntegrationTestsDriver.IntegrationTestFilter.html#testFilterRe">testFilterRe</a></span> - Variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/IntegrationTestsDriver.IntegrationTestFilter.html" title="class in org.apache.hadoop.hbase">IntegrationTestsDriver.IntegrationTestFilter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestQuotaObserverChoreWithMiniCluster.html#testFilterRegions--">testFilterRegions()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestQuotaObserverChoreWithMiniCluster.html" title="class in org.apache.hadoop.hbase.quotas">TestQuotaObserverChoreWithMiniCluster</a></dt>
@@ -55574,8 +55566,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/TestClientClusterStatus.html#testObserver--">testObserver()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TestClientClusterStatus.html" title="class in org.apache.hadoop.hbase">TestClientClusterStatus</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html#TestObserver--">TestObserver()</a></span> - Constructor for class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest.TestObserver</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestMasterSpaceQuotaObserver.html#testObserverAddedByDefault--">testObserverAddedByDefault()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestMasterSpaceQuotaObserver.html" title="class in org.apache.hadoop.hbase.quotas">TestMasterSpaceQuotaObserver</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#testObsoleteMethod--">testObsoleteMethod()</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest</a></dt>
@@ -62389,6 +62379,8 @@
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/mapred/TestTableMapReduceUtil.ClassificatorRowReduce.html" title="class in org.apache.hadoop.hbase.mapred"><span class="typeNameLink">TestTableMapReduceUtil.ClassificatorRowReduce</span></a> - Class in <a href="org/apache/hadoop/hbase/mapred/package-summary.html">org.apache.hadoop.hbase.mapred</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#testTableMissingJar--">testTableMissingJar()</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/TestAccessController.html#testTableModify--">testTableModify()</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/TestAccessController.html" title="class in org.apache.hadoop.hbase.security.access">TestAccessController</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/TestRSGroups.html#testTableMoveTruncateAndDrop--">testTableMoveTruncateAndDrop()</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/TestRSGroups.html" title="class in org.apache.hadoop.hbase.rsgroup">TestRSGroups</a></dt>
@@ -62416,6 +62408,8 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/TestMasterObserver.html#testTableNamesEnumeration--">testTableNamesEnumeration()</a></span> - Method in class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/TestMasterObserver.html" title="class in org.apache.hadoop.hbase.coprocessor">TestMasterObserver</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#testTableNoSuchClass--">testTableNoSuchClass()</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAdmin2.html#testTableNotDisabledExceptionWithATable--">testTableNotDisabledExceptionWithATable()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAdmin2.html" title="class in org.apache.hadoop.hbase.client">TestAdmin2</a></dt>
 <dd>
 <div class="block">Can't enable a table if the table isn't in disabled state</div>
@@ -62615,6 +62609,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/TestAccessController.html#testTableTruncate--">testTableTruncate()</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/TestAccessController.html" title="class in org.apache.hadoop.hbase.security.access">TestAccessController</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#testTableValidJar--">testTableValidJar()</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestQuotaObserverChoreWithMiniCluster.html#testTableViolatesQuota--">testTableViolatesQuota()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestQuotaObserverChoreWithMiniCluster.html" title="class in org.apache.hadoop.hbase.quotas">TestQuotaObserverChoreWithMiniCluster</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/TestLoadIncrementalHFiles.html#testTableWithCFNameStartWithUnderScore--">testTableWithCFNameStartWithUnderScore()</a></span> - Method in class org.apache.hadoop.hbase.tool.<a href="org/apache/hadoop/hbase/tool/TestLoadIncrementalHFiles.html" title="class in org.apache.hadoop.hbase.tool">TestLoadIncrementalHFiles</a></dt>
@@ -66296,11 +66292,11 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/TestVersionResource.html#validate-org.apache.hadoop.hbase.rest.model.VersionModel-">validate(VersionModel)</a></span> - Static method in class org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/TestVersionResource.html" title="class in org.apache.hadoop.hbase.rest">TestVersionResource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#validate-java.lang.String-">validate(String)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#validateAdminPermissions-org.apache.hadoop.hbase.security.access.SecureTestUtil.AccessTestAction-">validateAdminPermissions(SecureTestUtil.AccessTestAction)</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html" title="class in org.apache.hadoop.hbase.rsgroup">TestRSGroupsWithACL</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#validate-java.lang.ClassLoader-java.lang.String-">validate(ClassLoader, String)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#validateClass-java.lang.String-">validateClass(String)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html#validateAdminPermissions-org.apache.hadoop.hbase.security.access.SecureTestUtil.AccessTestAction-">validateAdminPermissions(SecureTestUtil.AccessTestAction)</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsWithACL.html" title="class in org.apache.hadoop.hbase.rsgroup">TestRSGroupsWithACL</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#validateClass-java.lang.ClassLoader-java.lang.String-">validateClass(ClassLoader, String)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureTestingUtility.html#validateColumnFamilyAddition-org.apache.hadoop.hbase.master.HMaster-org.apache.hadoop.hbase.TableName-java.lang.String-">validateColumnFamilyAddition(HMaster, TableName, String)</a></span> - Static method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureTestingUtility.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureTestingUtility</a></dt>
 <dd>&nbsp;</dd>
@@ -66381,6 +66377,8 @@
 <dd>
 <div class="block">Confirm ImportTsv via data in online table.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#validateTable-java.lang.String-java.lang.String-">validateTable(String, String)</a></span> - Method in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/TestAccessController.html#validateTableACLForGetUserPermissions-org.apache.hadoop.hbase.client.Connection-org.apache.hadoop.hbase.security.User-org.apache.hadoop.hbase.security.User-org.apache.hadoop.hbase.security.User-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.TableName-byte:A-java.util.Collection-">validateTableACLForGetUserPermissions(Connection, User, User, User, String, TableName, TableName, byte[], Collection&lt;String&gt;)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/TestAccessController.html" title="class in org.apache.hadoop.hbase.security.access">TestAccessController</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureTestingUtility.html#validateTableCreation-org.apache.hadoop.hbase.master.HMaster-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String...-">validateTableCreation(HMaster, TableName, RegionInfo[], String...)</a></span> - Static method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureTestingUtility.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureTestingUtility</a></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index e159b3f..3168ee3 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -145,8 +145,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.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.Failure.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestBackupDeleteWithFailures.Failure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestIncrementalBackupMergeWithFailures.FailurePhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestIncrementalBackupMergeWithFailures.FailurePhase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.Failure.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestBackupDeleteWithFailures.Failure</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/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 4837d80..ec56445 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/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>
+<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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/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 1239aec..4c73b14 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -576,15 +576,15 @@
 <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/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/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/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/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>
 <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/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/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/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/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/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/ScanPerformanceEvaluation.ScanCounter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/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/dbe3a233/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 b72e392..e9c1d93 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/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/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/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/dbe3a233/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 4c5bced..3853cbc 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -663,9 +663,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.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/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/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/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/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/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/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 29ba8c2..1152b38 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
@@ -253,10 +253,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.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/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/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/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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClass.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClass.html b/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClass.html
index 9140781..dd82bb8 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClass.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClass.html
@@ -107,7 +107,7 @@
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.118">CoprocessorValidatorTest.MissingClass</a>
+<pre>private static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.119">CoprocessorValidatorTest.MissingClass</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>
@@ -167,7 +167,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MissingClass</h4>
-<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClass.html#line.118">MissingClass</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClass.html#line.119">MissingClass</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassClassLoader.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassClassLoader.html b/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassClassLoader.html
index 84c6e0f..a64b1fa 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassClassLoader.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassClassLoader.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.127">CoprocessorValidatorTest.MissingClassClassLoader</a>
+<pre>private static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.128">CoprocessorValidatorTest.MissingClassClassLoader</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a></pre>
 </li>
 </ul>
@@ -194,7 +194,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MissingClassClassLoader</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassClassLoader.html#line.128">MissingClassClassLoader</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassClassLoader.html#line.129">MissingClassClassLoader</a>()</pre>
 </li>
 </ul>
 </li>
@@ -211,7 +211,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader
 <ul class="blockListLast">
 <li class="blockList">
 <h4>loadClass</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassClassLoader.html#line.133">loadClass</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>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassClassLoader.html#line.134">loadClass</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)
                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html b/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html
index 9128e12..01759d9 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.122">CoprocessorValidatorTest.MissingClassObserver</a>
+<pre>private static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.123">CoprocessorValidatorTest.MissingClassObserver</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>
@@ -184,7 +184,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MissingClassObserver</h4>
-<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html#line.122">MissingClassObserver</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html#line.123">MissingClassObserver</a>()</pre>
 </li>
 </ul>
 </li>
@@ -201,7 +201,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>method</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html#line.123">method</a>(<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClass.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest.MissingClass</a>&nbsp;missingClass)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html#line.124">method</a>(<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClass.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest.MissingClass</a>&nbsp;missingClass)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html b/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html
index 52c8af7..d173e8a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../../index.html?org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html" target="_top">Frames</a></li>
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.162">CoprocessorValidatorTest.ObsoleteMethodObserver</a>
+<pre>private static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.165">CoprocessorValidatorTest.ObsoleteMethodObserver</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>
@@ -186,7 +186,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ObsoleteMethodObserver</h4>
-<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html#line.162">ObsoleteMethodObserver</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html#line.165">ObsoleteMethodObserver</a>()</pre>
 </li>
 </ul>
 </li>
@@ -203,7 +203,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>preCreateTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html#line.163">preCreateTable</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html#line.166">preCreateTable</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment&gt;&nbsp;ctx,
                            org.apache.hadoop.hbase.HTableDescriptor&nbsp;desc,
                            org.apache.hadoop.hbase.HRegionInfo[]&nbsp;regions)
                     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>
@@ -242,7 +242,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../../index.html?org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html b/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html
deleted file mode 100644
index 0f287ea..0000000
--- a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html
+++ /dev/null
@@ -1,347 +0,0 @@
-<!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>CoprocessorValidatorTest.TestObserver (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="CoprocessorValidatorTest.TestObserver (Apache HBase 3.0.0-SNAPSHOT Test API)";
-        }
-    }
-    catch(err) {
-    }
-//-->
-var methods = {"i0":10,"i1":10};
-var tabs = {65535:["t0","All 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/CoprocessorValidatorTest.TestObserver.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/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li>Next&nbsp;Class</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html" target="_top">Frames</a></li>
-<li><a href="CoprocessorValidatorTest.TestObserver.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>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.tool.coprocessor</div>
-<h2 title="Class CoprocessorValidatorTest.TestObserver" class="title">Class CoprocessorValidatorTest.TestObserver</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>org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest.TestObserver</li>
-</ul>
-</li>
-</ul>
-<div class="description">
-<ul class="blockList">
-<li class="blockList">
-<dl>
-<dt>All Implemented Interfaces:</dt>
-<dd>org.apache.hadoop.hbase.Coprocessor</dd>
-</dl>
-<dl>
-<dt>Enclosing class:</dt>
-<dd><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest</a></dd>
-</dl>
-<hr>
-<br>
-<pre>private static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.64">CoprocessorValidatorTest.TestObserver</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.Coprocessor</pre>
-</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>
-<ul class="blockList">
-<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.hadoop.hbase.Coprocessor">
-<!--   -->
-</a>
-<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.hadoop.hbase.Coprocessor</h3>
-<code>org.apache.hadoop.hbase.Coprocessor.State</code></li>
-</ul>
-</li>
-</ul>
-<!-- =========== FIELD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="field.summary">
-<!--   -->
-</a>
-<h3>Field Summary</h3>
-<ul class="blockList">
-<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.Coprocessor">
-<!--   -->
-</a>
-<h3>Fields inherited from interface&nbsp;org.apache.hadoop.hbase.Coprocessor</h3>
-<code>PRIORITY_HIGHEST, PRIORITY_LOWEST, PRIORITY_SYSTEM, PRIORITY_USER, VERSION</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="colFirst" scope="col">Modifier</th>
-<th class="colLast" scope="col">Constructor and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>private </code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html#TestObserver--">TestObserver</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="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/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html#start-org.apache.hadoop.hbase.CoprocessorEnvironment-">start</a></span>(org.apache.hadoop.hbase.CoprocessorEnvironment&nbsp;env)</code>&nbsp;</td>
-</tr>
-<tr id="i1" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html#stop-org.apache.hadoop.hbase.CoprocessorEnvironment-">stop</a></span>(org.apache.hadoop.hbase.CoprocessorEnvironment&nbsp;env)</code>&nbsp;</td>
-</tr>
-</table>
-<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>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.Coprocessor">
-<!--   -->
-</a>
-<h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.Coprocessor</h3>
-<code>getServices</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="TestObserver--">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>TestObserver</h4>
-<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html#line.64">TestObserver</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="start-org.apache.hadoop.hbase.CoprocessorEnvironment-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>start</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html#line.66">start</a>(org.apache.hadoop.hbase.CoprocessorEnvironment&nbsp;env)
-           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>
-<dd><code>start</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Coprocessor</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="stop-org.apache.hadoop.hbase.CoprocessorEnvironment-">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html#line.70">stop</a>(org.apache.hadoop.hbase.CoprocessorEnvironment&nbsp;env)
-          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>
-<dd><code>stop</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Coprocessor</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>
-</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/CoprocessorValidatorTest.TestObserver.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/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li>Next&nbsp;Class</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html" target="_top">Frames</a></li>
-<li><a href="CoprocessorValidatorTest.TestObserver.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>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>


[15/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
index a5d418c..95f2a65 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
@@ -96,3682 +96,3680 @@
 <span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.88"></a>
 <span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.89"></a>
 <span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.exceptions.MergeRegionException;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.master.MasterRpcServices.BalanceSwitchMode;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.master.assignment.AssignmentManager;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.master.assignment.MergeTableRegionsProcedure;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.master.assignment.RegionStates;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.master.balancer.BalancerChore;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.master.balancer.ClusterStatusChore;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.master.cleaner.CleanerChore;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.master.cleaner.HFileCleaner;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.master.cleaner.LogCleaner;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.master.cleaner.ReplicationBarrierCleaner;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.master.locking.LockManager;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan.PlanType;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerFactory;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.master.procedure.CreateTableProcedure;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.master.procedure.DeleteNamespaceProcedure;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.master.procedure.DisableTableProcedure;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.master.procedure.EnableTableProcedure;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.master.procedure.InitMetaProcedure;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.master.procedure.ModifyTableProcedure;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.master.procedure.ProcedurePrepareLatch;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.master.procedure.ServerCrashProcedure;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.master.procedure.TruncateTableProcedure;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.master.replication.AbstractPeerProcedure;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.master.replication.AddPeerProcedure;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.master.replication.DisablePeerProcedure;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.master.replication.EnablePeerProcedure;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.master.replication.RemovePeerProcedure;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.master.replication.ReplicationPeerManager;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.master.replication.SyncReplicationReplayWALManager;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.master.replication.TransitPeerSyncReplicationStateProcedure;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.master.replication.UpdatePeerConfigProcedure;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.master.snapshot.SnapshotManager;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.master.zksyncer.MasterAddressSyncer;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.master.zksyncer.MetaLocationSyncer;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.mob.MobConstants;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.monitoring.MemoryBoundedLogMessageBuffer;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.monitoring.MonitoredTask;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.procedure.MasterProcedureManagerHost;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.procedure.flush.MasterFlushTableProcedureManager;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.procedure2.LockedResource;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.procedure2.ProcedureEvent;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher.RemoteProcedure;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.quotas.MasterQuotaManager;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.quotas.MasterSpaceQuotaObserver;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.quotas.QuotaObserverChore;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.quotas.QuotaUtil;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.quotas.SnapshotQuotaObserverChore;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshotNotifier;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshotNotifierFactory;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.regionserver.DefaultStoreEngine;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.regionserver.HStore;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.regionserver.RegionSplitPolicy;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.regionserver.compactions.ExploringCompactionPolicy;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.regionserver.compactions.FIFOCompactionPolicy;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.replication.ReplicationLoadSource;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.replication.ReplicationUtils;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.replication.SyncReplicationState;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.replication.master.ReplicationHFileCleaner;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.replication.master.ReplicationLogCleaner;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.replication.master.ReplicationPeerConfigUpgrader;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.trace.TraceUtil;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>import org.apache.hadoop.hbase.util.Addressing;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>import org.apache.hadoop.hbase.util.CompressionTest;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>import org.apache.hadoop.hbase.util.EncryptionTest;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>import org.apache.hadoop.hbase.util.HFileArchiveUtil;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>import org.apache.hadoop.hbase.util.HasThread;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>import org.apache.hadoop.hbase.util.IdLock;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>import org.apache.hadoop.hbase.util.ModifyRegionUtils;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>import org.apache.hadoop.hbase.util.VersionInfo;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>import org.apache.hadoop.hbase.zookeeper.LoadBalancerTracker;<a name="line.199"></a>
-<span class="sourceLineNo">200</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.200"></a>
-<span class="sourceLineNo">201</span>import org.apache.hadoop.hbase.zookeeper.MasterMaintenanceModeTracker;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>import org.apache.hadoop.hbase.zookeeper.RegionNormalizerTracker;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>import org.apache.hadoop.hbase.zookeeper.ZKClusterId;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>import org.apache.hadoop.hbase.zookeeper.ZKWatcher;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>import org.apache.hadoop.hbase.zookeeper.ZNodePaths;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.207"></a>
-<span class="sourceLineNo">208</span>import org.apache.zookeeper.KeeperException;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>import org.eclipse.jetty.server.Server;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>import org.eclipse.jetty.server.ServerConnector;<a name="line.210"></a>
-<span class="sourceLineNo">211</span>import org.eclipse.jetty.servlet.ServletHolder;<a name="line.211"></a>
-<span class="sourceLineNo">212</span>import org.eclipse.jetty.webapp.WebAppContext;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>import org.slf4j.Logger;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>import org.slf4j.LoggerFactory;<a name="line.214"></a>
-<span class="sourceLineNo">215</span><a name="line.215"></a>
-<span class="sourceLineNo">216</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.216"></a>
-<span class="sourceLineNo">217</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Quotas;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceViolationPolicy;<a name="line.223"></a>
-<span class="sourceLineNo">224</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription;<a name="line.224"></a>
-<span class="sourceLineNo">225</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos;<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>/**<a name="line.227"></a>
-<span class="sourceLineNo">228</span> * HMaster is the "master server" for HBase. An HBase cluster has one active<a name="line.228"></a>
-<span class="sourceLineNo">229</span> * master.  If many masters are started, all compete.  Whichever wins goes on to<a name="line.229"></a>
-<span class="sourceLineNo">230</span> * run the cluster.  All others park themselves in their constructor until<a name="line.230"></a>
-<span class="sourceLineNo">231</span> * master or cluster shutdown or until the active master loses its lease in<a name="line.231"></a>
-<span class="sourceLineNo">232</span> * zookeeper.  Thereafter, all running master jostle to take over master role.<a name="line.232"></a>
-<span class="sourceLineNo">233</span> *<a name="line.233"></a>
-<span class="sourceLineNo">234</span> * &lt;p&gt;The Master can be asked shutdown the cluster. See {@link #shutdown()}.  In<a name="line.234"></a>
-<span class="sourceLineNo">235</span> * this case it will tell all regionservers to go down and then wait on them<a name="line.235"></a>
-<span class="sourceLineNo">236</span> * all reporting in that they are down.  This master will then shut itself down.<a name="line.236"></a>
-<span class="sourceLineNo">237</span> *<a name="line.237"></a>
-<span class="sourceLineNo">238</span> * &lt;p&gt;You can also shutdown just this master.  Call {@link #stopMaster()}.<a name="line.238"></a>
-<span class="sourceLineNo">239</span> *<a name="line.239"></a>
-<span class="sourceLineNo">240</span> * @see org.apache.zookeeper.Watcher<a name="line.240"></a>
-<span class="sourceLineNo">241</span> */<a name="line.241"></a>
-<span class="sourceLineNo">242</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.242"></a>
-<span class="sourceLineNo">243</span>@SuppressWarnings("deprecation")<a name="line.243"></a>
-<span class="sourceLineNo">244</span>public class HMaster extends HRegionServer implements MasterServices {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  private static Logger LOG = LoggerFactory.getLogger(HMaster.class);<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>  /**<a name="line.247"></a>
-<span class="sourceLineNo">248</span>   * Protection against zombie master. Started once Master accepts active responsibility and<a name="line.248"></a>
-<span class="sourceLineNo">249</span>   * starts taking over responsibilities. Allows a finite time window before giving up ownership.<a name="line.249"></a>
-<span class="sourceLineNo">250</span>   */<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  private static class InitializationMonitor extends HasThread {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    /** The amount of time in milliseconds to sleep before checking initialization status. */<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    public static final String TIMEOUT_KEY = "hbase.master.initializationmonitor.timeout";<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    public static final long TIMEOUT_DEFAULT = TimeUnit.MILLISECONDS.convert(15, TimeUnit.MINUTES);<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>    /**<a name="line.256"></a>
-<span class="sourceLineNo">257</span>     * When timeout expired and initialization has not complete, call {@link System#exit(int)} when<a name="line.257"></a>
-<span class="sourceLineNo">258</span>     * true, do nothing otherwise.<a name="line.258"></a>
-<span class="sourceLineNo">259</span>     */<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    public static final String HALT_KEY = "hbase.master.initializationmonitor.haltontimeout";<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    public static final boolean HALT_DEFAULT = false;<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>    private final HMaster master;<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    private final long timeout;<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    private final boolean haltOnTimeout;<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>    /** Creates a Thread that monitors the {@link #isInitialized()} state. */<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    InitializationMonitor(HMaster master) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      super("MasterInitializationMonitor");<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      this.master = master;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      this.timeout = master.getConfiguration().getLong(TIMEOUT_KEY, TIMEOUT_DEFAULT);<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      this.haltOnTimeout = master.getConfiguration().getBoolean(HALT_KEY, HALT_DEFAULT);<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      this.setDaemon(true);<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>    @Override<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    public void run() {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      try {<a name="line.278"></a>
-<span class="sourceLineNo">279</span>        while (!master.isStopped() &amp;&amp; master.isActiveMaster()) {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>          Thread.sleep(timeout);<a name="line.280"></a>
-<span class="sourceLineNo">281</span>          if (master.isInitialized()) {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>            LOG.debug("Initialization completed within allotted tolerance. Monitor exiting.");<a name="line.282"></a>
-<span class="sourceLineNo">283</span>          } else {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>            LOG.error("Master failed to complete initialization after " + timeout + "ms. Please"<a name="line.284"></a>
-<span class="sourceLineNo">285</span>                + " consider submitting a bug report including a thread dump of this process.");<a name="line.285"></a>
-<span class="sourceLineNo">286</span>            if (haltOnTimeout) {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>              LOG.error("Zombie Master exiting. Thread dump to stdout");<a name="line.287"></a>
-<span class="sourceLineNo">288</span>              Threads.printThreadInfo(System.out, "Zombie HMaster");<a name="line.288"></a>
-<span class="sourceLineNo">289</span>              System.exit(-1);<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>      } catch (InterruptedException ie) {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>        LOG.trace("InitMonitor thread interrupted. Existing.");<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      }<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>  // MASTER is name of the webapp and the attribute name used stuffing this<a name="line.299"></a>
-<span class="sourceLineNo">300</span>  //instance into web context.<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  public static final String MASTER = "master";<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>  // Manager and zk listener for master election<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  private final ActiveMasterManager activeMasterManager;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  // Region server tracker<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  private RegionServerTracker regionServerTracker;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>  // Draining region server tracker<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  private DrainingServerTracker drainingServerTracker;<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  // Tracker for load balancer state<a name="line.309"></a>
-<span class="sourceLineNo">310</span>  LoadBalancerTracker loadBalancerTracker;<a name="line.310"></a>
-<span class="sourceLineNo">311</span>  // Tracker for meta location, if any client ZK quorum specified<a name="line.311"></a>
-<span class="sourceLineNo">312</span>  MetaLocationSyncer metaLocationSyncer;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  // Tracker for active master location, if any client ZK quorum specified<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  MasterAddressSyncer masterAddressSyncer;<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>  // Tracker for split and merge state<a name="line.316"></a>
-<span class="sourceLineNo">317</span>  private SplitOrMergeTracker splitOrMergeTracker;<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span>  // Tracker for region normalizer state<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  private RegionNormalizerTracker regionNormalizerTracker;<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span>  //Tracker for master maintenance mode setting<a name="line.322"></a>
-<span class="sourceLineNo">323</span>  private MasterMaintenanceModeTracker maintenanceModeTracker;<a name="line.323"></a>
-<span class="sourceLineNo">324</span><a name="line.324"></a>
-<span class="sourceLineNo">325</span>  private ClusterSchemaService clusterSchemaService;<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public static final String HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS =<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    "hbase.master.wait.on.service.seconds";<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  public static final int DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS = 5 * 60;<a name="line.329"></a>
-<span class="sourceLineNo">330</span><a name="line.330"></a>
-<span class="sourceLineNo">331</span>  // Metrics for the HMaster<a name="line.331"></a>
-<span class="sourceLineNo">332</span>  final MetricsMaster metricsMaster;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>  // file system manager for the master FS operations<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  private MasterFileSystem fileSystemManager;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  private MasterWalManager walManager;<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  // server manager to deal with region server info<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  private volatile ServerManager serverManager;<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>  // manager of assignment nodes in zookeeper<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  private AssignmentManager assignmentManager;<a name="line.341"></a>
-<span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>  // manager of replication<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  private ReplicationPeerManager replicationPeerManager;<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  private SyncReplicationReplayWALManager syncReplicationReplayWALManager;<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span>  // buffer for "fatal error" notices from region servers<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  // in the cluster. This is only used for assisting<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  // operations/debugging.<a name="line.350"></a>
-<span class="sourceLineNo">351</span>  MemoryBoundedLogMessageBuffer rsFatals;<a name="line.351"></a>
-<span class="sourceLineNo">352</span><a name="line.352"></a>
-<span class="sourceLineNo">353</span>  // flag set after we become the active master (used for testing)<a name="line.353"></a>
-<span class="sourceLineNo">354</span>  private volatile boolean activeMaster = false;<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span>  // flag set after we complete initialization once active<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  private final ProcedureEvent&lt;?&gt; initialized = new ProcedureEvent&lt;&gt;("master initialized");<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>  // flag set after master services are started,<a name="line.359"></a>
-<span class="sourceLineNo">360</span>  // initialization may have not completed yet.<a name="line.360"></a>
-<span class="sourceLineNo">361</span>  volatile boolean serviceStarted = false;<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span>  // Maximum time we should run balancer for<a name="line.363"></a>
-<span class="sourceLineNo">364</span>  private final int maxBlancingTime;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  // Maximum percent of regions in transition when balancing<a name="line.365"></a>
-<span class="sourceLineNo">366</span>  private final double maxRitPercent;<a name="line.366"></a>
-<span class="sourceLineNo">367</span><a name="line.367"></a>
-<span class="sourceLineNo">368</span>  private final LockManager lockManager = new LockManager(this);<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>  private LoadBalancer balancer;<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  private RegionNormalizer normalizer;<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  private BalancerChore balancerChore;<a name="line.372"></a>
-<span class="sourceLineNo">373</span>  private RegionNormalizerChore normalizerChore;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  private ClusterStatusChore clusterStatusChore;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  private ClusterStatusPublisher clusterStatusPublisherChore = null;<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>  CatalogJanitor catalogJanitorChore;<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  private LogCleaner logCleaner;<a name="line.378"></a>
-<span class="sourceLineNo">379</span>  private HFileCleaner hfileCleaner;<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  private ReplicationBarrierCleaner replicationBarrierCleaner;<a name="line.380"></a>
-<span class="sourceLineNo">381</span>  private ExpiredMobFileCleanerChore expiredMobFileCleanerChore;<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  private MobCompactionChore mobCompactChore;<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  private MasterMobCompactionThread mobCompactThread;<a name="line.383"></a>
-<span class="sourceLineNo">384</span>  // used to synchronize the mobCompactionStates<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  private final IdLock mobCompactionLock = new IdLock();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  // save the information of mob compactions in tables.<a name="line.386"></a>
-<span class="sourceLineNo">387</span>  // the key is table name, the value is the number of compactions in that table.<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  private Map&lt;TableName, AtomicInteger&gt; mobCompactionStates = Maps.newConcurrentMap();<a name="line.388"></a>
-<span class="sourceLineNo">389</span><a name="line.389"></a>
-<span class="sourceLineNo">390</span>  MasterCoprocessorHost cpHost;<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span>  private final boolean preLoadTableDescriptors;<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>  // Time stamps for when a hmaster became active<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  private long masterActiveTime;<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span>  // Time stamp for when HMaster finishes becoming Active Master<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  private long masterFinishedInitializationTime;<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>  //should we check the compression codec type at master side, default true, HBASE-6370<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  private final boolean masterCheckCompression;<a name="line.401"></a>
-<span class="sourceLineNo">402</span><a name="line.402"></a>
-<span class="sourceLineNo">403</span>  //should we check encryption settings at master side, default true<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  private final boolean masterCheckEncryption;<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>  Map&lt;String, Service&gt; coprocessorServiceHandlers = Maps.newHashMap();<a name="line.406"></a>
-<span class="sourceLineNo">407</span><a name="line.407"></a>
-<span class="sourceLineNo">408</span>  // monitor for snapshot of hbase tables<a name="line.408"></a>
-<span class="sourceLineNo">409</span>  SnapshotManager snapshotManager;<a name="line.409"></a>
-<span class="sourceLineNo">410</span>  // monitor for distributed procedures<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  private MasterProcedureManagerHost mpmHost;<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  // it is assigned after 'initialized' guard set to true, so should be volatile<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  private volatile MasterQuotaManager quotaManager;<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  private SpaceQuotaSnapshotNotifier spaceQuotaSnapshotNotifier;<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  private QuotaObserverChore quotaObserverChore;<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  private SnapshotQuotaObserverChore snapshotQuotaChore;<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  private ProcedureExecutor&lt;MasterProcedureEnv&gt; procedureExecutor;<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  private WALProcedureStore procedureStore;<a name="line.420"></a>
-<span class="sourceLineNo">421</span><a name="line.421"></a>
-<span class="sourceLineNo">422</span>  // handle table states<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  private TableStateManager tableStateManager;<a name="line.423"></a>
-<span class="sourceLineNo">424</span><a name="line.424"></a>
-<span class="sourceLineNo">425</span>  private long splitPlanCount;<a name="line.425"></a>
-<span class="sourceLineNo">426</span>  private long mergePlanCount;<a name="line.426"></a>
-<span class="sourceLineNo">427</span><a name="line.427"></a>
-<span class="sourceLineNo">428</span>  /* Handle favored nodes information */<a name="line.428"></a>
-<span class="sourceLineNo">429</span>  private FavoredNodesManager favoredNodesManager;<a name="line.429"></a>
-<span class="sourceLineNo">430</span><a name="line.430"></a>
-<span class="sourceLineNo">431</span>  /** jetty server for master to redirect requests to regionserver infoServer */<a name="line.431"></a>
-<span class="sourceLineNo">432</span>  private Server masterJettyServer;<a name="line.432"></a>
-<span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>  public static class RedirectServlet extends HttpServlet {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    private static final long serialVersionUID = 2894774810058302473L;<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    private final int regionServerInfoPort;<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    private final String regionServerHostname;<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>     * @param infoServer that we're trying to send all requests to<a name="line.440"></a>
-<span class="sourceLineNo">441</span>     * @param hostname may be null. if given, will be used for redirects instead of host from client.<a name="line.441"></a>
-<span class="sourceLineNo">442</span>     */<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    public RedirectServlet(InfoServer infoServer, String hostname) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>       regionServerInfoPort = infoServer.getPort();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>       regionServerHostname = hostname;<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    }<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>    @Override<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    public void doGet(HttpServletRequest request,<a name="line.449"></a>
-<span class="sourceLineNo">450</span>        HttpServletResponse response) throws ServletException, IOException {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      String redirectHost = regionServerHostname;<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      if(redirectHost == null) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        redirectHost = request.getServerName();<a name="line.453"></a>
-<span class="sourceLineNo">454</span>        if(!Addressing.isLocalAddress(InetAddress.getByName(redirectHost))) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>          LOG.warn("Couldn't resolve '" + redirectHost + "' as an address local to this node and '" +<a name="line.455"></a>
-<span class="sourceLineNo">456</span>              MASTER_HOSTNAME_KEY + "' is not set; client will get a HTTP 400 response. If " +<a name="line.456"></a>
-<span class="sourceLineNo">457</span>              "your HBase deployment relies on client accessible names that the region server process " +<a name="line.457"></a>
-<span class="sourceLineNo">458</span>              "can't resolve locally, then you should set the previously mentioned configuration variable " +<a name="line.458"></a>
-<span class="sourceLineNo">459</span>              "to an appropriate hostname.");<a name="line.459"></a>
-<span class="sourceLineNo">460</span>          // no sending client provided input back to the client, so the goal host is just in the logs.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>          response.sendError(400, "Request was to a host that I can't resolve for any of the network interfaces on " +<a name="line.461"></a>
-<span class="sourceLineNo">462</span>              "this node. If this is due to an intermediary such as an HTTP load balancer or other proxy, your HBase " +<a name="line.462"></a>
-<span class="sourceLineNo">463</span>              "administrator can set '" + MASTER_HOSTNAME_KEY + "' to point to the correct hostname.");<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          return;<a name="line.464"></a>
-<span class="sourceLineNo">465</span>        }<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      }<a name="line.466"></a>
-<span class="sourceLineNo">467</span>      // TODO this scheme should come from looking at the scheme registered in the infoserver's http server for the<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      // host and port we're using, but it's buried way too deep to do that ATM.<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      String redirectUrl = request.getScheme() + "://"<a name="line.469"></a>
-<span class="sourceLineNo">470</span>        + redirectHost + ":" + regionServerInfoPort<a name="line.470"></a>
-<span class="sourceLineNo">471</span>        + request.getRequestURI();<a name="line.471"></a>
-<span class="sourceLineNo">472</span>      response.sendRedirect(redirectUrl);<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><a name="line.475"></a>
-<span class="sourceLineNo">476</span>  /**<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * Initializes the HMaster. The steps are as follows:<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * &lt;p&gt;<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   * &lt;ol&gt;<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * &lt;li&gt;Initialize the local HRegionServer<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * &lt;li&gt;Start the ActiveMasterManager.<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   * &lt;/ol&gt;<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   * &lt;p&gt;<a name="line.483"></a>
-<span class="sourceLineNo">484</span>   * Remaining steps of initialization occur in<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   * #finishActiveMasterInitialization(MonitoredTask) after<a name="line.485"></a>
-<span class="sourceLineNo">486</span>   * the master becomes the active one.<a name="line.486"></a>
-<span class="sourceLineNo">487</span>   */<a name="line.487"></a>
-<span class="sourceLineNo">488</span>  public HMaster(final Configuration conf)<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      throws IOException, KeeperException {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    super(conf);<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    TraceUtil.initTracer(conf);<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    try {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      this.rsFatals = new MemoryBoundedLogMessageBuffer(<a name="line.493"></a>
-<span class="sourceLineNo">494</span>          conf.getLong("hbase.master.buffer.for.rs.fatals", 1 * 1024 * 1024));<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      LOG.info("hbase.rootdir=" + getRootDir() +<a name="line.495"></a>
-<span class="sourceLineNo">496</span>          ", hbase.cluster.distributed=" + this.conf.getBoolean(HConstants.CLUSTER_DISTRIBUTED, false));<a name="line.496"></a>
-<span class="sourceLineNo">497</span><a name="line.497"></a>
-<span class="sourceLineNo">498</span>      // Disable usage of meta replicas in the master<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      this.conf.setBoolean(HConstants.USE_META_REPLICAS, false);<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>      decorateMasterConfiguration(this.conf);<a name="line.501"></a>
-<span class="sourceLineNo">502</span><a name="line.502"></a>
-<span class="sourceLineNo">503</span>      // Hack! Maps DFSClient =&gt; Master for logs.  HDFS made this<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      // config param for task trackers, but we can piggyback off of it.<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      if (this.conf.get("mapreduce.task.attempt.id") == null) {<a name="line.505"></a>
-<span class="sourceLineNo">506</span>        this.conf.set("mapreduce.task.attempt.id", "hb_m_" + this.serverName.toString());<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>      // should we check the compression codec type at master side, default true, HBASE-6370<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      this.masterCheckCompression = conf.getBoolean("hbase.master.check.compression", true);<a name="line.510"></a>
-<span class="sourceLineNo">511</span><a name="line.511"></a>
-<span class="sourceLineNo">512</span>      // should we check encryption settings at master side, default true<a name="line.512"></a>
-<span class="sourceLineNo">513</span>      this.masterCheckEncryption = conf.getBoolean("hbase.master.check.encryption", true);<a name="line.513"></a>
-<span class="sourceLineNo">514</span><a name="line.514"></a>
-<span class="sourceLineNo">515</span>      this.metricsMaster = new MetricsMaster(new MetricsMasterWrapperImpl(this));<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>      // preload table descriptor at startup<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      this.preLoadTableDescriptors = conf.getBoolean("hbase.master.preload.tabledescriptors", true);<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>      this.maxBlancingTime = getMaxBalancingTime();<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      this.maxRitPercent = conf.getDouble(HConstants.HBASE_MASTER_BALANCER_MAX_RIT_PERCENT,<a name="line.521"></a>
-<span class="sourceLineNo">522</span>          HConstants.DEFAULT_HBASE_MASTER_BALANCER_MAX_RIT_PERCENT);<a name="line.522"></a>
-<span class="sourceLineNo">523</span><a name="line.523"></a>
-<span class="sourceLineNo">524</span>      // Do we publish the status?<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>      boolean shouldPublish = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      Class&lt;? extends ClusterStatusPublisher.Publisher&gt; publisherClass =<a name="line.528"></a>
-<span class="sourceLineNo">529</span>          conf.getClass(ClusterStatusPublisher.STATUS_PUBLISHER_CLASS,<a name="line.529"></a>
-<span class="sourceLineNo">530</span>              ClusterStatusPublisher.DEFAULT_STATUS_PUBLISHER_CLASS,<a name="line.530"></a>
-<span class="sourceLineNo">531</span>              ClusterStatusPublisher.Publisher.class);<a name="line.531"></a>
-<span class="sourceLineNo">532</span><a name="line.532"></a>
-<span class="sourceLineNo">533</span>      if (shouldPublish) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>        if (publisherClass == null) {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.535"></a>
-<span class="sourceLineNo">536</span>              ClusterStatusPublisher.DEFAULT_STATUS_PUBLISHER_CLASS +<a name="line.536"></a>
-<span class="sourceLineNo">537</span>              " is not set - not publishing status");<a name="line.537"></a>
-<span class="sourceLineNo">538</span>        } else {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>          clusterStatusPublisherChore = new ClusterStatusPublisher(this, conf, publisherClass);<a name="line.539"></a>
-<span class="sourceLineNo">540</span>          getChoreService().scheduleChore(clusterStatusPublisherChore);<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>      // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>        this.activeMasterManager = new ActiveMasterManager(zooKeeper, this.serverName, this);<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      } else {<a name="line.547"></a>
-<span class="sourceLineNo">548</span>        this.activeMasterManager = null;<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      }<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    } catch (Throwable t) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      // Make sure we log the exception. HMaster is often started via reflection and the<a name="line.551"></a>
-<span class="sourceLineNo">552</span>      // cause of failed startup is lost.<a name="line.552"></a>
-<span class="sourceLineNo">553</span>      LOG.error("Failed construction of Master", t);<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      throw t;<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">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>  @Override<a name="line.558"></a>
-<span class="sourceLineNo">559</span>  protected String getUseThisHostnameInstead(Configuration conf) {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    return conf.get(MASTER_HOSTNAME_KEY);<a name="line.560"></a>
-<span class="sourceLineNo">561</span>  }<a name="line.561"></a>
-<span class="sourceLineNo">562</span><a name="line.562"></a>
-<span class="sourceLineNo">563</span>  // Main run loop. Calls through to the regionserver run loop AFTER becoming active Master; will<a name="line.563"></a>
-<span class="sourceLineNo">564</span>  // block in here until then.<a name="line.564"></a>
-<span class="sourceLineNo">565</span>  @Override<a name="line.565"></a>
-<span class="sourceLineNo">566</span>  public void run() {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    try {<a name="line.567"></a>
-<span class="sourceLineNo">568</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>        Threads.setDaemonThreadRunning(new Thread(() -&gt; {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>          try {<a name="line.570"></a>
-<span class="sourceLineNo">571</span>            int infoPort = putUpJettyServer();<a name="line.571"></a>
-<span class="sourceLineNo">572</span>            startActiveMasterManager(infoPort);<a name="line.572"></a>
-<span class="sourceLineNo">573</span>          } catch (Throwable t) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>            // Make sure we log the exception.<a name="line.574"></a>
-<span class="sourceLineNo">575</span>            String error = "Failed to become Active Master";<a name="line.575"></a>
-<span class="sourceLineNo">576</span>            LOG.error(error, t);<a name="line.576"></a>
-<span class="sourceLineNo">577</span>            // Abort should have been called already.<a name="line.577"></a>
-<span class="sourceLineNo">578</span>            if (!isAborted()) {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>              abort(error, t);<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">584</span>      // Fall in here even if we have been aborted. Need to run the shutdown services and<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      // the super run call will do this for us.<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      super.run();<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    } finally {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      if (this.clusterSchemaService != null) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>        // If on way out, then we are no longer active master.<a name="line.589"></a>
-<span class="sourceLineNo">590</span>        this.clusterSchemaService.stopAsync();<a name="line.590"></a>
-<span class="sourceLineNo">591</span>        try {<a name="line.591"></a>
-<span class="sourceLineNo">592</span>          this.clusterSchemaService.awaitTerminated(<a name="line.592"></a>
-<span class="sourceLineNo">593</span>              getConfiguration().getInt(HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS,<a name="line.593"></a>
-<span class="sourceLineNo">594</span>              DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS), TimeUnit.SECONDS);<a name="line.594"></a>
-<span class="sourceLineNo">595</span>        } catch (TimeoutException te) {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>          LOG.warn("Failed shutdown of clusterSchemaService", te);<a name="line.596"></a>
-<span class="sourceLineNo">597</span>        }<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      }<a name="line.598"></a>
-<span class="sourceLineNo">599</span>      this.activeMaster = false;<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    }<a name="line.600"></a>
-<span class="sourceLineNo">601</span>  }<a name="line.601"></a>
-<span class="sourceLineNo">602</span><a name="line.602"></a>
-<span class="sourceLineNo">603</span>  // return the actual infoPort, -1 means disable info server.<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  private int putUpJettyServer() throws IOException {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    if (!conf.getBoolean("hbase.master.infoserver.redirect", true)) {<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      return -1;<a name="line.606"></a>
-<span class="sourceLineNo">607</span>    }<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    final int infoPort = conf.getInt("hbase.master.info.port.orig",<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      HConstants.DEFAULT_MASTER_INFOPORT);<a name="line.609"></a>
-<span class="sourceLineNo">610</span>    // -1 is for disabling info server, so no redirecting<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    if (infoPort &lt; 0 || infoServer == null) {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      return -1;<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    }<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    if(infoPort == infoServer.getPort()) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      return infoPort;<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    }<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    final String addr = conf.get("hbase.master.info.bindAddress", "0.0.0.0");<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    if (!Addressing.isLocalAddress(InetAddress.getByName(addr))) {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      String msg =<a name="line.619"></a>
-<span class="sourceLineNo">620</span>          "Failed to start redirecting jetty server. Address " + addr<a name="line.620"></a>
-<span class="sourceLineNo">621</span>              + " does not belong to this host. Correct configuration parameter: "<a name="line.621"></a>
-<span class="sourceLineNo">622</span>              + "hbase.master.info.bindAddress";<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      LOG.error(msg);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      throw new IOException(msg);<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    }<a name="line.625"></a>
-<span class="sourceLineNo">626</span><a name="line.626"></a>
-<span class="sourceLineNo">627</span>    // TODO I'm pretty sure we could just add another binding to the InfoServer run by<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    // the RegionServer and have it run the RedirectServlet instead of standing up<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    // a second entire stack here.<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    masterJettyServer = new Server();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>    final ServerConnector connector = new ServerConnector(masterJettyServer);<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    connector.setHost(addr);<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    connector.setPort(infoPort);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    masterJettyServer.addConnector(connector);<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    masterJettyServer.setStopAtShutdown(true);<a name="line.635"></a>
-<span class="sourceLineNo">636</span><a name="line.636"></a>
-<span class="sourceLineNo">637</span>    final String redirectHostname =<a name="line.637"></a>
-<span class="sourceLineNo">638</span>        StringUtils.isBlank(useThisHostnameInstead) ? null : useThisHostnameInstead;<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span>    final RedirectServlet redirect = new RedirectServlet(infoServer, redirectHostname);<a name="line.640"></a>
-<span class="sourceLineNo">641</span>    final WebAppContext context = new WebAppContext(null, "/", null, null, null, null, WebAppContext.NO_SESSIONS);<a name="line.641"></a>
-<span class="sourceLineNo">642</span>    context.addServlet(new ServletHolder(redirect), "/*");<a name="line.642"></a>
-<span class="sourceLineNo">643</span>    context.setServer(masterJettyServer);<a name="line.643"></a>
-<span class="sourceLineNo">644</span><a name="line.644"></a>
-<span class="sourceLineNo">645</span>    try {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>      masterJettyServer.start();<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    } catch (Exception e) {<a name="line.647"></a>
-<span class="sourceLineNo">648</span>      throw new IOException("Failed to start redirecting jetty server", e);<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    }<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    return connector.getLocalPort();<a name="line.650"></a>
-<span class="sourceLineNo">651</span>  }<a name="line.651"></a>
-<span class="sourceLineNo">652</span><a name="line.652"></a>
-<span class="sourceLineNo">653</span>  @Override<a name="line.653"></a>
-<span class="sourceLineNo">654</span>  protected Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    return builder -&gt; builder.setRegionReplication(conf.getInt(HConstants.META_REPLICAS_NUM, HConstants.DEFAULT_META_REPLICA_NUM));<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
-<span class="sourceLineNo">657</span>  /**<a name="line.657"></a>
-<span class="sourceLineNo">658</span>   * For compatibility, if failed with regionserver credentials, try the master one<a name="line.658"></a>
-<span class="sourceLineNo">659</span>   */<a name="line.659"></a>
-<span class="sourceLineNo">660</span>  @Override<a name="line.660"></a>
-<span class="sourceLineNo">661</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    try {<a name="line.662"></a>
-<span class="sourceLineNo">663</span>      super.login(user, host);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    } catch (IOException ie) {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      user.login("hbase.master.keytab.file",<a name="line.665"></a>
-<span class="sourceLineNo">666</span>        "hbase.master.kerberos.principal", host);<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    }<a name="line.667"></a>
-<span class="sourceLineNo">668</span>  }<a name="line.668"></a>
-<span class="sourceLineNo">669</span><a name="line.669"></a>
-<span class="sourceLineNo">670</span>  /**<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   * If configured to put regions on active master,<a name="line.671"></a>
-<span class="sourceLineNo">672</span>   * wait till a backup master becomes active.<a name="line.672"></a>
-<span class="sourceLineNo">673</span>   * Otherwise, loop till the server is stopped or aborted.<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   */<a name="line.674"></a>
-<span class="sourceLineNo">675</span>  @Override<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  protected void waitForMasterActive(){<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(conf);<a name="line.677"></a>
-<span class="sourceLineNo">678</span>    while (!(tablesOnMaster &amp;&amp; activeMaster) &amp;&amp; !isStopped() &amp;&amp; !isAborted()) {<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      sleeper.sleep();<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    }<a name="line.680"></a>
-<span class="sourceLineNo">681</span>  }<a name="line.681"></a>
-<span class="sourceLineNo">682</span><a name="line.682"></a>
-<span class="sourceLineNo">683</span>  @VisibleForTesting<a name="line.683"></a>
-<span class="sourceLineNo">684</span>  public MasterRpcServices getMasterRpcServices() {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    return (MasterRpcServices)rpcServices;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>  }<a name="line.686"></a>
-<span class="sourceLineNo">687</span><a name="line.687"></a>
-<span class="sourceLineNo">688</span>  public boolean balanceSwitch(final boolean b) throws IOException {<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    return getMasterRpcServices().switchBalancer(b, BalanceSwitchMode.ASYNC);<a name="line.689"></a>
-<span class="sourceLineNo">690</span>  }<a name="line.690"></a>
-<span class="sourceLineNo">691</span><a name="line.691"></a>
-<span class="sourceLineNo">692</span>  @Override<a name="line.692"></a>
-<span class="sourceLineNo">693</span>  protected String getProcessName() {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    return MASTER;<a name="line.694"></a>
-<span class="sourceLineNo">695</span>  }<a name="line.695"></a>
-<span class="sourceLineNo">696</span><a name="line.696"></a>
-<span class="sourceLineNo">697</span>  @Override<a name="line.697"></a>
-<span class="sourceLineNo">698</span>  protected boolean canCreateBaseZNode() {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    return true;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>  }<a name="line.700"></a>
-<span class="sourceLineNo">701</span><a name="line.701"></a>
-<span class="sourceLineNo">702</span>  @Override<a name="line.702"></a>
-<span class="sourceLineNo">703</span>  protected boolean canUpdateTableDescriptor() {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    return true;<a name="line.704"></a>
-<span class="sourceLineNo">705</span>  }<a name="line.705"></a>
-<span class="sourceLineNo">706</span><a name="line.706"></a>
-<span class="sourceLineNo">707</span>  @Override<a name="line.707"></a>
-<span class="sourceLineNo">708</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    return new MasterRpcServices(this);<a name="line.709"></a>
-<span class="sourceLineNo">710</span>  }<a name="line.710"></a>
-<span class="sourceLineNo">711</span><a name="line.711"></a>
-<span class="sourceLineNo">712</span>  @Override<a name="line.712"></a>
-<span class="sourceLineNo">713</span>  protected void configureInfoServer() {<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    infoServer.addServlet("master-status", "/master-status", MasterStatusServlet.class);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    infoServer.setAttribute(MASTER, this);<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.716"></a>
-<span class="sourceLineNo">717</span>      super.configureInfoServer();<a name="line.717"></a>
-<span class="sourceLineNo">718</span>    }<a name="line.718"></a>
-<span class="sourceLineNo">719</span>  }<a name="line.719"></a>
-<span class="sourceLineNo">720</span><a name="line.720"></a>
-<span class="sourceLineNo">721</span>  @Override<a name="line.721"></a>
-<span class="sourceLineNo">722</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    return MasterDumpServlet.class;<a name="line.723"></a>
-<span class="sourceLineNo">724</span>  }<a name="line.724"></a>
-<span class="sourceLineNo">725</span><a name="line.725"></a>
-<span class="sourceLineNo">726</span>  @Override<a name="line.726"></a>
-<span class="sourceLineNo">727</span>  public MetricsMaster getMasterMetrics() {<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    return metricsMaster;<a name="line.728"></a>
-<span class="sourceLineNo">729</span>  }<a name="line.729"></a>
-<span class="sourceLineNo">730</span><a name="line.730"></a>
-<span class="sourceLineNo">731</span>  /**<a name="line.731"></a>
-<span class="sourceLineNo">732</span>   * &lt;p&gt;<a name="line.732"></a>
-<span class="sourceLineNo">733</span>   * Initialize all ZK based system trackers. But do not include {@link RegionServerTracker}, it<a name="line.733"></a>
-<span class="sourceLineNo">734</span>   * should have already been initialized along with {@link ServerManager}.<a name="line.734"></a>
-<span class="sourceLineNo">735</span>   * &lt;/p&gt;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>   * &lt;p&gt;<a name="line.736"></a>
-<span class="sourceLineNo">737</span>   * Will be overridden in tests.<a name="line.737"></a>
-<span class="sourceLineNo">738</span>   * &lt;/p&gt;<a name="line.738"></a>
-<span class="sourceLineNo">739</span>   */<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  @VisibleForTesting<a name="line.740"></a>
-<span class="sourceLineNo">741</span>  protected void initializeZKBasedSystemTrackers()<a name="line.741"></a>
-<span class="sourceLineNo">742</span>      throws IOException, InterruptedException, KeeperException, ReplicationException {<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    this.balancer = LoadBalancerFactory.getLoadBalancer(conf);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>    this.normalizer = RegionNormalizerFactory.getRegionNormalizer(conf);<a name="line.744"></a>
-<span class="sourceLineNo">745</span>    this.normalizer.setMasterServices(this);<a name="line.745"></a>
-<span class="sourceLineNo">746</span>    this.normalizer.setMasterRpcServices((MasterRpcServices)rpcServices);<a name="line.746"></a>
-<span class="sourceLineNo">747</span>    this.loadBalancerTracker = new LoadBalancerTracker(zooKeeper, this);<a name="line.747"></a>
-<span class="sourceLineNo">748</span>    this.loadBalancerTracker.start();<a name="line.748"></a>
-<span class="sourceLineNo">749</span><a name="line.749"></a>
-<span class="sourceLineNo">750</span>    this.regionNormalizerTracker = new RegionNormalizerTracker(zooKeeper, this);<a name="line.750"></a>
-<span class="sourceLineNo">751</span>    this.regionNormalizerTracker.start();<a name="line.751"></a>
-<span class="sourceLineNo">752</span><a name="line.752"></a>
-<span class="sourceLineNo">753</span>    this.splitOrMergeTracker = new SplitOrMergeTracker(zooKeeper, conf, this);<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    this.splitOrMergeTracker.start();<a name="line.754"></a>
-<span class="sourceLineNo">755</span><a name="line.755"></a>
-<span class="sourceLineNo">756</span>    this.replicationPeerManager = ReplicationPeerManager.create(zooKeeper, conf);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    this.syncReplicationReplayWALManager = new SyncReplicationReplayWALManager(this);<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>    this.drainingServerTracker = new DrainingServerTracker(zooKeeper, this, this.serverManager);<a name="line.759"></a>
-<span class="sourceLineNo">760</span>    this.drainingServerTracker.start();<a name="line.760"></a>
-<span class="sourceLineNo">761</span><a name="line.761"></a>
-<span class="sourceLineNo">762</span>    this.maintenanceModeTracker = new MasterMaintenanceModeTracker(zooKeeper);<a name="line.762"></a>
-<span class="sourceLineNo">763</span>    this.maintenanceModeTracker.start();<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span>    String clientQuorumServers = conf.get(HConstants.CLIENT_ZOOKEEPER_QUORUM);<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    boolean clientZkObserverMode = conf.getBoolean(HConstants.CLIENT_ZOOKEEPER_OBSERVER_MODE,<a name="line.766"></a>
-<span class="sourceLineNo">767</span>      HConstants.DEFAULT_CLIENT_ZOOKEEPER_OBSERVER_MODE);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    if (clientQuorumServers != null &amp;&amp; !clientZkObserverMode) {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>      // we need to take care of the ZK information synchronization<a name="line.769"></a>
-<span class="sourceLineNo">770</span>      // if given client ZK are not observer nodes<a name="line.770"></a>
-<span class="sourceLineNo">771</span>      ZKWatcher clientZkWatcher = new ZKWatcher(conf,<a name="line.771"></a>
-<span class="sourceLineNo">772</span>          getProcessName() + ":" + rpcServices.getSocketAddress().getPort() + "-clientZK", this,<a name="line.772"></a>
-<span class="sourceLineNo">773</span>          false, true);<a name="line.773"></a>
-<span class="sourceLineNo">774</span>      this.metaLocationSyncer = new MetaLocationSyncer(zooKeeper, clientZkWatcher, this);<a name="line.774"></a>
-<span class="sourceLineNo">775</span>      this.metaLocationSyncer.start();<a name="line.775"></a>
-<span class="sourceLineNo">776</span>      this.masterAddressSyncer = new MasterAddressSyncer(zooKeeper, clientZkWatcher, this);<a name="line.776"></a>
-<span class="sourceLineNo">777</span>      this.masterAddressSyncer.start();<a name="line.777"></a>
-<span class="sourceLineNo">778</span>      // set cluster id is a one-go effort<a name="line.778"></a>
-<span class="sourceLineNo">779</span>      ZKClusterId.setClusterId(clientZkWatcher, fileSystemManager.getClusterId());<a name="line.779"></a>
-<span class="sourceLineNo">780</span>    }<a name="line.780"></a>
-<span class="sourceLineNo">781</span><a name="line.781"></a>
-<span class="sourceLineNo">782</span>    // Set the cluster as up.  If new RSs, they'll be waiting on this before<a name="line.782"></a>
-<span class="sourceLineNo">783</span>    // going ahead with their startup.<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    boolean wasUp = this.clusterStatusTracker.isClusterUp();<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    if (!wasUp) this.clusterStatusTracker.setClusterUp();<a name="line.785"></a>
-<span class="sourceLineNo">786</span><a name="line.786"></a>
-<span class="sourceLineNo">787</span>    LOG.info("Active/primary master=" + this.serverName +<a name="line.787"></a>
-<span class="sourceLineNo">788</span>        ", sessionid=0x" +<a name="line.788"></a>
-<span class="sourceLineNo">789</span>        Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()) +<a name="line.789"></a>
-<span class="sourceLineNo">790</span>        ", setting cluster-up flag (Was=" + wasUp + ")");<a name="line.790"></a>
-<span class="sourceLineNo">791</span><a name="line.791"></a>
-<span class="sourceLineNo">792</span>    // create/initialize the snapshot manager and other procedure managers<a name="line.792"></a>
-<span class="sourceLineNo">793</span>    this.snapshotManager = new SnapshotManager();<a name="line.793"></a>
-<span class="sourceLineNo">794</span>    this.mpmHost = new MasterProcedureManagerHost();<a name="line.794"></a>
-<span class="sourceLineNo">795</span>    this.mpmHost.register(this.snapshotManager);<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    this.mpmHost.register(new MasterFlushTableProcedureManager());<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    this.mpmHost.loadProcedures(conf);<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    this.mpmHost.initialize(this, this.metricsMaster);<a name="line.798"></a>
-<span class="sourceLineNo">799</span>  }<a name="line.799"></a>
-<span class="sourceLineNo">800</span><a name="line.800"></a>
-<span class="sourceLineNo">801</span>  /**<a name="line.801"></a>
-<span class="sourceLineNo">802</span>   * Finish initialization of HMaster after becoming the primary master.<a name="line.802"></a>
-<span class="sourceLineNo">803</span>   * &lt;p/&gt;<a name="line.803"></a>
-<span class="sourceLineNo">804</span>   * The startup order is a bit complicated but very important, do not change it unless you know<a name="line.804"></a>
-<span class="sourceLineNo">805</span>   * what you are doing.<a name="line.805"></a>
-<span class="sourceLineNo">806</span>   * &lt;ol&gt;<a name="line.806"></a>
-<span class="sourceLineNo">807</span>   * &lt;li&gt;Initialize file system based components - file system manager, wal manager, table<a name="line.807"></a>
-<span class="sourceLineNo">808</span>   * descriptors, etc&lt;/li&gt;<a name="line.808"></a>
-<span class="sourceLineNo">809</span>   * &lt;li&gt;Publish cluster id&lt;/li&gt;<a name="line.809"></a>
-<span class="sourceLineNo">810</span>   * &lt;li&gt;Here comes the most complicated part - initialize server manager, assignment manager and<a name="line.810"></a>
-<span class="sourceLineNo">811</span>   * region server tracker<a name="line.811"></a>
-<span class="sourceLineNo">812</span>   * &lt;ol type='i'&gt;<a name="line.812"></a>
-<span class="sourceLineNo">813</span>   * &lt;li&gt;Create server manager&lt;/li&gt;<a name="line.813"></a>
-<span class="sourceLineNo">814</span>   * &lt;li&gt;Create procedure executor, load the procedures, but do not start workers. We will start it<a name="line.814"></a>
-<span class="sourceLineNo">815</span>   * later after we finish scheduling SCPs to avoid scheduling duplicated SCPs for the same<a name="line.815"></a>
-<span class="sourceLineNo">816</span>   * server&lt;/li&gt;<a name="line.816"></a>
-<span class="sourceLineNo">817</span>   * &lt;li&gt;Create assignment manager and start it, load the meta region state, but do not load data<a name="line.817"></a>
-<span class="sourceLineNo">818</span>   * from meta region&lt;/li&gt;<a name="line.818"></a>
-<span class="sourceLineNo">819</span>   * &lt;li&gt;Start region server tracker, construct the online servers set and find out dead servers and<a name="line.819"></a>
-<span class="sourceLineNo">820</span>   * schedule SCP for them. The online servers will be constructed by scanning zk, and we will also<a name="line.820"></a>
-<span class="sourceLineNo">821</span>   * scan the wal directory to find out possible live region servers, and the differences between<a name="line.821"></a>
-<span class="sourceLineNo">822</span>   * these two sets are the dead servers&lt;/li&gt;<a name="line.822"></a>
-<span class="sourceLineNo">823</span>   * &lt;/ol&gt;<a name="line.823"></a>
-<span class="sourceLineNo">824</span>   * &lt;/li&gt;<a name="line.824"></a>
-<span class="sourceLineNo">825</span>   * &lt;li&gt;If this is a new deploy, schedule a InitMetaProcedure to initialize meta&lt;/li&gt;<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   * &lt;li&gt;Start necessary service threads - balancer, catalog janior, executor services, and also the<a name="line.826"></a>
-<span class="sourceLineNo">827</span>   * procedure executor, etc. Notice that the balancer must be created first as assignment manager<a name="line.827"></a>
-<span class="sourceLineNo">828</span>   * may use it when assigning regions.&lt;/li&gt;<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * &lt;li&gt;Wait for meta to be initialized if necesssary, start table state manager.&lt;/li&gt;<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   * &lt;li&gt;Wait for enough region servers to check-in&lt;/li&gt;<a name="line.830"></a>
-<span class="sourceLineNo">831</span>   * &lt;li&gt;Let assignment manager load data from meta and construct region states&lt;/li&gt;<a name="line.831"></a>
-<span class="sourceLineNo">832</span>   * &lt;li&gt;Start all other things such as chore services, etc&lt;/li&gt;<a name="line.832"></a>
-<span class="sourceLineNo">833</span>   * &lt;/ol&gt;<a name="line.833"></a>
-<span class="sourceLineNo">834</span>   * &lt;p/&gt;<a name="line.834"></a>
-<span class="sourceLineNo">835</span>   * Notice that now we will not schedule a special procedure to make meta online(unless the first<a name="line.835"></a>
-<span class="sourceLineNo">836</span>   * time where meta has not been created yet), we will rely on SCP to bring meta online.<a name="line.836"></a>
-<span class="sourceLineNo">837</span>   */<a name="line.837"></a>
-<span class="sourceLineNo">838</span>  private void finishActiveMasterInitialization(MonitoredTask status) throws IOException,<a name="line.838"></a>
-<span class="sourceLineNo">839</span>          InterruptedException, KeeperException, ReplicationException {<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    Thread zombieDetector = new Thread(new InitializationMonitor(this),<a name="line.840"></a>
-<span class="sourceLineNo">841</span>        "ActiveMasterInitializationMonitor-" + System.currentTimeMillis());<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    zombieDetector.setDaemon(true);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    zombieDetector.start();<a name="line.843"></a>
-<span class="sourceLineNo">844</span><a name="line.844"></a>
-<span class="sourceLineNo">845</span>    /*<a name="line.845"></a>
-<span class="sourceLineNo">846</span>     * We are active master now... go initialize components we need to run.<a name="line.846"></a>
-<span class="sourceLineNo">847</span>     */<a name="line.847"></a>
-<span class="sourceLineNo">848</span>    status.setStatus("Initializing Master file system");<a name="line.848"></a>
-<span class="sourceLineNo">849</span><a name="line.849"></a>
-<span class="sourceLineNo">850</span>    this.masterActiveTime = System.currentTimeMillis();<a name="line.850"></a>
-<span class="sourceLineNo">851</span>    // TODO: Do this using Dependency Injection, using PicoContainer, Guice or Spring.<a name="line.851"></a>
-<span class="sourceLineNo">852</span>    // Initialize the chunkCreator<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    initializeMemStoreChunkCreator();<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    this.fileSystemManager = new MasterFileSystem(conf);<a name="line.854"></a>
-<span class="sourceLineNo">855</span>    this.walManager = new MasterWalManager(this);<a name="line.855"></a>
-<span class="sourceLineNo">856</span><a name="line.856"></a>
-<span class="sourceLineNo">857</span>    // enable table descriptors cache<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    this.tableDescriptors.setCacheOn();<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>    // warm-up HTDs cache on master initialization<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    if (preLoadTableDescriptors) {<a name="line.861"></a>
-<span class="sourceLineNo">862</span>      status.setStatus("Pre-loading table descriptors");<a name="line.862"></a>
-<span class="sourceLineNo">863</span>      this.tableDescriptors.getAll();<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    }<a name="line.864"></a>
-<span class="sourceLineNo">865</span><a name="line.865"></a>
-<span class="sourceLineNo">866</span>    // Publish cluster ID; set it in Master too. The superclass RegionServer does this later but<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    // only after it has checked in with the Master. At least a few tests ask Master for clusterId<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    // before it has called its run method and before RegionServer has done the reportForDuty.<a name="line.868"></a>
-<span class="sourceLineNo">869</span>    ClusterId clusterId = fileSystemManager.getClusterId();<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    status.setStatus("Publishing Cluster ID " + clusterId + " in ZooKeeper");<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    ZKClusterId.setClusterId(this.zooKeeper, fileSystemManager.getClusterId());<a name="line.871"></a>
-<span class="sourceLineNo">872</span>    this.clusterId = clusterId.toString();<a name="line.872"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.exceptions.MergeRegionException;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.master.MasterRpcServices.BalanceSwitchMode;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.master.assignment.AssignmentManager;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.master.assignment.MergeTableRegionsProcedure;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.master.assignment.RegionStates;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.master.balancer.BalancerChore;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.master.balancer.ClusterStatusChore;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.master.cleaner.CleanerChore;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.master.cleaner.HFileCleaner;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.master.cleaner.LogCleaner;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.master.cleaner.ReplicationBarrierCleaner;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.master.locking.LockManager;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan.PlanType;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerFactory;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.master.procedure.CreateTableProcedure;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.master.procedure.DeleteNamespaceProcedure;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.master.procedure.DisableTableProcedure;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.master.procedure.EnableTableProcedure;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.master.procedure.InitMetaProcedure;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.h

<TRUNCATED>

[16/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html b/devapidocs/src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html
index a324787..04f8623 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ServerMetricsBuilder.html
@@ -56,78 +56,78 @@
 <span class="sourceLineNo">048</span>    return newBuilder(sn).build();<a name="line.48"></a>
 <span class="sourceLineNo">049</span>  }<a name="line.49"></a>
 <span class="sourceLineNo">050</span><a name="line.50"></a>
-<span class="sourceLineNo">051</span>  public static ServerMetrics of(ServerName sn, int versionNumber) {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    return newBuilder(sn).setVersionNumber(versionNumber).build();<a name="line.52"></a>
+<span class="sourceLineNo">051</span>  public static ServerMetrics of(ServerName sn, int versionNumber, String version) {<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    return newBuilder(sn).setVersionNumber(versionNumber).setVersion(version).build();<a name="line.52"></a>
 <span class="sourceLineNo">053</span>  }<a name="line.53"></a>
 <span class="sourceLineNo">054</span><a name="line.54"></a>
 <span class="sourceLineNo">055</span>  public static ServerMetrics toServerMetrics(ClusterStatusProtos.LiveServerInfo serverInfo) {<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    return toServerMetrics(ProtobufUtil.toServerName(serverInfo.getServer()), 0,<a name="line.56"></a>
-<span class="sourceLineNo">057</span>        serverInfo.getServerLoad());<a name="line.57"></a>
+<span class="sourceLineNo">056</span>    return toServerMetrics(ProtobufUtil.toServerName(serverInfo.getServer()), 0, "0.0.0",<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      serverInfo.getServerLoad());<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>  public static ServerMetrics toServerMetrics(ServerName serverName,<a name="line.60"></a>
 <span class="sourceLineNo">061</span>      ClusterStatusProtos.ServerLoad serverLoadPB) {<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    return toServerMetrics(serverName, 0, serverLoadPB);<a name="line.62"></a>
+<span class="sourceLineNo">062</span>    return toServerMetrics(serverName, 0, "0.0.0", serverLoadPB);<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>  public static ServerMetrics toServerMetrics(ServerName serverName, int versionNumber,<a name="line.65"></a>
-<span class="sourceLineNo">066</span>      ClusterStatusProtos.ServerLoad serverLoadPB) {<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    return ServerMetricsBuilder.newBuilder(serverName).setVersionNumber(versionNumber)<a name="line.67"></a>
-<span class="sourceLineNo">068</span>        .setRequestCountPerSecond(serverLoadPB.getNumberOfRequests())<a name="line.68"></a>
-<span class="sourceLineNo">069</span>        .setRequestCount(serverLoadPB.getTotalNumberOfRequests())<a name="line.69"></a>
-<span class="sourceLineNo">070</span>        .setInfoServerPort(serverLoadPB.getInfoServerPort())<a name="line.70"></a>
-<span class="sourceLineNo">071</span>        .setMaxHeapSize(new Size(serverLoadPB.getMaxHeapMB(), Size.Unit.MEGABYTE))<a name="line.71"></a>
-<span class="sourceLineNo">072</span>        .setUsedHeapSize(new Size(serverLoadPB.getUsedHeapMB(), Size.Unit.MEGABYTE))<a name="line.72"></a>
-<span class="sourceLineNo">073</span>        .setCoprocessorNames(serverLoadPB.getCoprocessorsList().stream()<a name="line.73"></a>
-<span class="sourceLineNo">074</span>            .map(HBaseProtos.Coprocessor::getName).collect(Collectors.toList()))<a name="line.74"></a>
-<span class="sourceLineNo">075</span>        .setRegionMetrics(serverLoadPB.getRegionLoadsList().stream()<a name="line.75"></a>
-<span class="sourceLineNo">076</span>            .map(RegionMetricsBuilder::toRegionMetrics)<a name="line.76"></a>
-<span class="sourceLineNo">077</span>            .collect(Collectors.toList()))<a name="line.77"></a>
-<span class="sourceLineNo">078</span>        .setReplicationLoadSources(serverLoadPB.getReplLoadSourceList().stream()<a name="line.78"></a>
-<span class="sourceLineNo">079</span>            .map(ProtobufUtil::toReplicationLoadSource)<a name="line.79"></a>
-<span class="sourceLineNo">080</span>            .collect(Collectors.toList()))<a name="line.80"></a>
-<span class="sourceLineNo">081</span>        .setReplicationLoadSink(serverLoadPB.hasReplLoadSink() ?<a name="line.81"></a>
-<span class="sourceLineNo">082</span>            ProtobufUtil.toReplicationLoadSink(serverLoadPB.getReplLoadSink()) : null)<a name="line.82"></a>
-<span class="sourceLineNo">083</span>        .setReportTimestamp(serverLoadPB.getReportEndTime())<a name="line.83"></a>
-<span class="sourceLineNo">084</span>        .setLastReportTimestamp(serverLoadPB.getReportStartTime())<a name="line.84"></a>
-<span class="sourceLineNo">085</span>        .build();<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  }<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>  public static List&lt;HBaseProtos.Coprocessor&gt; toCoprocessor(Collection&lt;String&gt; names) {<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    return names.stream()<a name="line.89"></a>
-<span class="sourceLineNo">090</span>        .map(n -&gt; HBaseProtos.Coprocessor.newBuilder().setName(n).build())<a name="line.90"></a>
-<span class="sourceLineNo">091</span>        .collect(Collectors.toList());<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 ClusterStatusProtos.ServerLoad toServerLoad(ServerMetrics metrics) {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    ClusterStatusProtos.ServerLoad.Builder builder = ClusterStatusProtos.ServerLoad.newBuilder()<a name="line.95"></a>
-<span class="sourceLineNo">096</span>        .setNumberOfRequests(metrics.getRequestCountPerSecond())<a name="line.96"></a>
-<span class="sourceLineNo">097</span>        .setTotalNumberOfRequests(metrics.getRequestCount())<a name="line.97"></a>
-<span class="sourceLineNo">098</span>        .setInfoServerPort(metrics.getInfoServerPort())<a name="line.98"></a>
-<span class="sourceLineNo">099</span>        .setMaxHeapMB((int) metrics.getMaxHeapSize().get(Size.Unit.MEGABYTE))<a name="line.99"></a>
-<span class="sourceLineNo">100</span>        .setUsedHeapMB((int) metrics.getUsedHeapSize().get(Size.Unit.MEGABYTE))<a name="line.100"></a>
-<span class="sourceLineNo">101</span>        .addAllCoprocessors(toCoprocessor(metrics.getCoprocessorNames()))<a name="line.101"></a>
-<span class="sourceLineNo">102</span>        .addAllRegionLoads(metrics.getRegionMetrics().values().stream()<a name="line.102"></a>
-<span class="sourceLineNo">103</span>            .map(RegionMetricsBuilder::toRegionLoad)<a name="line.103"></a>
-<span class="sourceLineNo">104</span>            .collect(Collectors.toList()))<a name="line.104"></a>
-<span class="sourceLineNo">105</span>        .addAllReplLoadSource(metrics.getReplicationLoadSourceList().stream()<a name="line.105"></a>
-<span class="sourceLineNo">106</span>            .map(ProtobufUtil::toReplicationLoadSource)<a name="line.106"></a>
-<span class="sourceLineNo">107</span>            .collect(Collectors.toList()))<a name="line.107"></a>
-<span class="sourceLineNo">108</span>        .setReportStartTime(metrics.getLastReportTimestamp())<a name="line.108"></a>
-<span class="sourceLineNo">109</span>        .setReportEndTime(metrics.getReportTimestamp());<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    if (metrics.getReplicationLoadSink() != null) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      builder.setReplLoadSink(ProtobufUtil.toReplicationLoadSink(<a name="line.111"></a>
-<span class="sourceLineNo">112</span>          metrics.getReplicationLoadSink()));<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    }<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    return builder.build();<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>  public static ServerMetricsBuilder newBuilder(ServerName sn) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    return new ServerMetricsBuilder(sn);<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 final ServerName serverName;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  private int versionNumber;<a name="line.122"></a>
+<span class="sourceLineNo">066</span>      String version, ClusterStatusProtos.ServerLoad serverLoadPB) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    return ServerMetricsBuilder.newBuilder(serverName)<a name="line.67"></a>
+<span class="sourceLineNo">068</span>      .setRequestCountPerSecond(serverLoadPB.getNumberOfRequests())<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      .setRequestCount(serverLoadPB.getTotalNumberOfRequests())<a name="line.69"></a>
+<span class="sourceLineNo">070</span>      .setInfoServerPort(serverLoadPB.getInfoServerPort())<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      .setMaxHeapSize(new Size(serverLoadPB.getMaxHeapMB(), Size.Unit.MEGABYTE))<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      .setUsedHeapSize(new Size(serverLoadPB.getUsedHeapMB(), Size.Unit.MEGABYTE))<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      .setCoprocessorNames(serverLoadPB.getCoprocessorsList().stream()<a name="line.73"></a>
+<span class="sourceLineNo">074</span>        .map(HBaseProtos.Coprocessor::getName).collect(Collectors.toList()))<a name="line.74"></a>
+<span class="sourceLineNo">075</span>      .setRegionMetrics(serverLoadPB.getRegionLoadsList().stream()<a name="line.75"></a>
+<span class="sourceLineNo">076</span>        .map(RegionMetricsBuilder::toRegionMetrics).collect(Collectors.toList()))<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      .setReplicationLoadSources(serverLoadPB.getReplLoadSourceList().stream()<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        .map(ProtobufUtil::toReplicationLoadSource).collect(Collectors.toList()))<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      .setReplicationLoadSink(serverLoadPB.hasReplLoadSink()<a name="line.79"></a>
+<span class="sourceLineNo">080</span>        ? ProtobufUtil.toReplicationLoadSink(serverLoadPB.getReplLoadSink())<a name="line.80"></a>
+<span class="sourceLineNo">081</span>        : null)<a name="line.81"></a>
+<span class="sourceLineNo">082</span>      .setReportTimestamp(serverLoadPB.getReportEndTime())<a name="line.82"></a>
+<span class="sourceLineNo">083</span>      .setLastReportTimestamp(serverLoadPB.getReportStartTime()).setVersionNumber(versionNumber)<a name="line.83"></a>
+<span class="sourceLineNo">084</span>      .setVersion(version).build();<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 static List&lt;HBaseProtos.Coprocessor&gt; toCoprocessor(Collection&lt;String&gt; names) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    return names.stream()<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        .map(n -&gt; HBaseProtos.Coprocessor.newBuilder().setName(n).build())<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        .collect(Collectors.toList());<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>  public static ClusterStatusProtos.ServerLoad toServerLoad(ServerMetrics metrics) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    ClusterStatusProtos.ServerLoad.Builder builder = ClusterStatusProtos.ServerLoad.newBuilder()<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        .setNumberOfRequests(metrics.getRequestCountPerSecond())<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        .setTotalNumberOfRequests(metrics.getRequestCount())<a name="line.96"></a>
+<span class="sourceLineNo">097</span>        .setInfoServerPort(metrics.getInfoServerPort())<a name="line.97"></a>
+<span class="sourceLineNo">098</span>        .setMaxHeapMB((int) metrics.getMaxHeapSize().get(Size.Unit.MEGABYTE))<a name="line.98"></a>
+<span class="sourceLineNo">099</span>        .setUsedHeapMB((int) metrics.getUsedHeapSize().get(Size.Unit.MEGABYTE))<a name="line.99"></a>
+<span class="sourceLineNo">100</span>        .addAllCoprocessors(toCoprocessor(metrics.getCoprocessorNames()))<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        .addAllRegionLoads(metrics.getRegionMetrics().values().stream()<a name="line.101"></a>
+<span class="sourceLineNo">102</span>            .map(RegionMetricsBuilder::toRegionLoad)<a name="line.102"></a>
+<span class="sourceLineNo">103</span>            .collect(Collectors.toList()))<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        .addAllReplLoadSource(metrics.getReplicationLoadSourceList().stream()<a name="line.104"></a>
+<span class="sourceLineNo">105</span>            .map(ProtobufUtil::toReplicationLoadSource)<a name="line.105"></a>
+<span class="sourceLineNo">106</span>            .collect(Collectors.toList()))<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        .setReportStartTime(metrics.getLastReportTimestamp())<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        .setReportEndTime(metrics.getReportTimestamp());<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    if (metrics.getReplicationLoadSink() != null) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      builder.setReplLoadSink(ProtobufUtil.toReplicationLoadSink(<a name="line.110"></a>
+<span class="sourceLineNo">111</span>          metrics.getReplicationLoadSink()));<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    return builder.build();<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 ServerMetricsBuilder newBuilder(ServerName sn) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    return new ServerMetricsBuilder(sn);<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  }<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>  private final ServerName serverName;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>  private int versionNumber;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  private String version = "0.0.0";<a name="line.122"></a>
 <span class="sourceLineNo">123</span>  private long requestCountPerSecond;<a name="line.123"></a>
 <span class="sourceLineNo">124</span>  private long requestCount;<a name="line.124"></a>
 <span class="sourceLineNo">125</span>  private Size usedHeapSize = Size.ZERO;<a name="line.125"></a>
@@ -149,246 +149,258 @@
 <span class="sourceLineNo">141</span>    return this;<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>  public ServerMetricsBuilder setRequestCountPerSecond(long value) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    this.requestCountPerSecond = value;<a name="line.145"></a>
+<span class="sourceLineNo">144</span>  public ServerMetricsBuilder setVersion(String version) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    this.version = version;<a name="line.145"></a>
 <span class="sourceLineNo">146</span>    return this;<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>  public ServerMetricsBuilder setRequestCount(long value) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    this.requestCount = value;<a name="line.150"></a>
+<span class="sourceLineNo">149</span>  public ServerMetricsBuilder setRequestCountPerSecond(long value) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    this.requestCountPerSecond = value;<a name="line.150"></a>
 <span class="sourceLineNo">151</span>    return this;<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>  public ServerMetricsBuilder setUsedHeapSize(Size value) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    this.usedHeapSize = value;<a name="line.155"></a>
+<span class="sourceLineNo">154</span>  public ServerMetricsBuilder setRequestCount(long value) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    this.requestCount = value;<a name="line.155"></a>
 <span class="sourceLineNo">156</span>    return this;<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>  public ServerMetricsBuilder setMaxHeapSize(Size value) {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    this.maxHeapSize = value;<a name="line.160"></a>
+<span class="sourceLineNo">159</span>  public ServerMetricsBuilder setUsedHeapSize(Size value) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    this.usedHeapSize = value;<a name="line.160"></a>
 <span class="sourceLineNo">161</span>    return this;<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>  public ServerMetricsBuilder setInfoServerPort(int value) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    this.infoServerPort = value;<a name="line.165"></a>
+<span class="sourceLineNo">164</span>  public ServerMetricsBuilder setMaxHeapSize(Size value) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    this.maxHeapSize = value;<a name="line.165"></a>
 <span class="sourceLineNo">166</span>    return this;<a name="line.166"></a>
 <span class="sourceLineNo">167</span>  }<a name="line.167"></a>
 <span class="sourceLineNo">168</span><a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public ServerMetricsBuilder setReplicationLoadSources(List&lt;ReplicationLoadSource&gt; value) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    this.sources = value;<a name="line.170"></a>
+<span class="sourceLineNo">169</span>  public ServerMetricsBuilder setInfoServerPort(int value) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    this.infoServerPort = value;<a name="line.170"></a>
 <span class="sourceLineNo">171</span>    return this;<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>
-<span class="sourceLineNo">174</span>  public ServerMetricsBuilder setReplicationLoadSink(ReplicationLoadSink value) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    this.sink = value;<a name="line.175"></a>
+<span class="sourceLineNo">174</span>  public ServerMetricsBuilder setReplicationLoadSources(List&lt;ReplicationLoadSource&gt; value) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    this.sources = value;<a name="line.175"></a>
 <span class="sourceLineNo">176</span>    return this;<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">179</span>  public ServerMetricsBuilder setRegionMetrics(List&lt;RegionMetrics&gt; value) {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    value.forEach(v -&gt; this.regionStatus.put(v.getRegionName(), v));<a name="line.180"></a>
+<span class="sourceLineNo">179</span>  public ServerMetricsBuilder setReplicationLoadSink(ReplicationLoadSink value) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    this.sink = value;<a name="line.180"></a>
 <span class="sourceLineNo">181</span>    return this;<a name="line.181"></a>
 <span class="sourceLineNo">182</span>  }<a name="line.182"></a>
 <span class="sourceLineNo">183</span><a name="line.183"></a>
-<span class="sourceLineNo">184</span>  public ServerMetricsBuilder setCoprocessorNames(List&lt;String&gt; value) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    coprocessorNames.addAll(value);<a name="line.185"></a>
+<span class="sourceLineNo">184</span>  public ServerMetricsBuilder setRegionMetrics(List&lt;RegionMetrics&gt; value) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    value.forEach(v -&gt; this.regionStatus.put(v.getRegionName(), v));<a name="line.185"></a>
 <span class="sourceLineNo">186</span>    return this;<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>  public ServerMetricsBuilder setReportTimestamp(long value) {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    this.reportTimestamp = value;<a name="line.190"></a>
+<span class="sourceLineNo">189</span>  public ServerMetricsBuilder setCoprocessorNames(List&lt;String&gt; value) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    coprocessorNames.addAll(value);<a name="line.190"></a>
 <span class="sourceLineNo">191</span>    return this;<a name="line.191"></a>
 <span class="sourceLineNo">192</span>  }<a name="line.192"></a>
 <span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>  public ServerMetricsBuilder setLastReportTimestamp(long value) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    this.lastReportTimestamp = value;<a name="line.195"></a>
+<span class="sourceLineNo">194</span>  public ServerMetricsBuilder setReportTimestamp(long value) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    this.reportTimestamp = value;<a name="line.195"></a>
 <span class="sourceLineNo">196</span>    return this;<a name="line.196"></a>
 <span class="sourceLineNo">197</span>  }<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  public ServerMetrics build() {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    return new ServerMetricsImpl(<a name="line.200"></a>
-<span class="sourceLineNo">201</span>        serverName,<a name="line.201"></a>
-<span class="sourceLineNo">202</span>        versionNumber,<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        requestCountPerSecond,<a name="line.203"></a>
-<span class="sourceLineNo">204</span>        requestCount,<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        usedHeapSize,<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        maxHeapSize,<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        infoServerPort,<a name="line.207"></a>
-<span class="sourceLineNo">208</span>        sources,<a name="line.208"></a>
-<span class="sourceLineNo">209</span>        sink,<a name="line.209"></a>
-<span class="sourceLineNo">210</span>        regionStatus,<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        coprocessorNames,<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        reportTimestamp,<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        lastReportTimestamp);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  }<a name="line.214"></a>
-<span class="sourceLineNo">215</span><a name="line.215"></a>
-<span class="sourceLineNo">216</span>  private static class ServerMetricsImpl implements ServerMetrics {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    private final ServerName serverName;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    private final int versionNumber;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    private final long requestCountPerSecond;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    private final long requestCount;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    private final Size usedHeapSize;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    private final Size maxHeapSize;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    private final int infoServerPort;<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    private final List&lt;ReplicationLoadSource&gt; sources;<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    @Nullable<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private final ReplicationLoadSink sink;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    private final Map&lt;byte[], RegionMetrics&gt; regionStatus;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    private final Set&lt;String&gt; coprocessorNames;<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    private final long reportTimestamp;<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    private final long lastReportTimestamp;<a name="line.230"></a>
-<span class="sourceLineNo">231</span><a name="line.231"></a>
-<span class="sourceLineNo">232</span>    ServerMetricsImpl(ServerName serverName, int versionNumber, long requestCountPerSecond,<a name="line.232"></a>
-<span class="sourceLineNo">233</span>        long requestCount, Size usedHeapSize, Size maxHeapSize, int infoServerPort,<a name="line.233"></a>
-<span class="sourceLineNo">234</span>        List&lt;ReplicationLoadSource&gt; sources, ReplicationLoadSink sink,<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        Map&lt;byte[], RegionMetrics&gt; regionStatus, Set&lt;String&gt; coprocessorNames, long reportTimestamp,<a name="line.235"></a>
-<span class="sourceLineNo">236</span>        long lastReportTimestamp) {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      this.serverName = Preconditions.checkNotNull(serverName);<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      this.versionNumber = versionNumber;<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      this.requestCountPerSecond = requestCountPerSecond;<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      this.requestCount = requestCount;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      this.usedHeapSize = Preconditions.checkNotNull(usedHeapSize);<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      this.maxHeapSize = Preconditions.checkNotNull(maxHeapSize);<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      this.infoServerPort = infoServerPort;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      this.sources = Preconditions.checkNotNull(sources);<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      this.sink = sink;<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      this.regionStatus = Preconditions.checkNotNull(regionStatus);<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      this.coprocessorNames =Preconditions.checkNotNull(coprocessorNames);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      this.reportTimestamp = reportTimestamp;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      this.lastReportTimestamp = lastReportTimestamp;<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>    @Override<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    public ServerName getServerName() {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      return serverName;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    public int getVersionNumber() {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      return versionNumber;<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>    @Override<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    public long getRequestCountPerSecond() {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      return requestCountPerSecond;<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>    @Override<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    public long getRequestCount() {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      return requestCount;<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>    @Override<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    public Size getUsedHeapSize() {<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      return usedHeapSize;<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>    @Override<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    public Size getMaxHeapSize() {<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      return maxHeapSize;<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>    @Override<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    public int getInfoServerPort() {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      return infoServerPort;<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>    @Override<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    public List&lt;ReplicationLoadSource&gt; getReplicationLoadSourceList() {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      return Collections.unmodifiableList(sources);<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>    @Override<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    public ReplicationLoadSink getReplicationLoadSink() {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      return sink;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>    @Override<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    public Map&lt;byte[], RegionMetrics&gt; getRegionMetrics() {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      return Collections.unmodifiableMap(regionStatus);<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    }<a name="line.300"></a>
-<span class="sourceLineNo">301</span><a name="line.301"></a>
-<span class="sourceLineNo">302</span>    @Override<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    public Set&lt;String&gt; getCoprocessorNames() {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      return Collections.unmodifiableSet(coprocessorNames);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>    @Override<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    public long getReportTimestamp() {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      return reportTimestamp;<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>
-<span class="sourceLineNo">312</span>    @Override<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    public long getLastReportTimestamp() {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      return lastReportTimestamp;<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>    @Override<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    public String toString() {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      int storeCount = 0;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>      int storeFileCount = 0;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      long uncompressedStoreFileSizeMB = 0;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      long storeFileSizeMB = 0;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      long memStoreSizeMB = 0;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      long storefileIndexSizeKB = 0;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      long rootLevelIndexSizeKB = 0;<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      long readRequestsCount = 0;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      long cpRequestsCount = 0;<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      long writeRequestsCount = 0;<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      long filteredReadRequestsCount = 0;<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      long bloomFilterSizeMB = 0;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      long compactingCellCount = 0;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      long compactedCellCount = 0;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      for (RegionMetrics r : getRegionMetrics().values()) {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>        storeCount += r.getStoreCount();<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        storeFileCount += r.getStoreFileCount();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>        uncompressedStoreFileSizeMB += r.getUncompressedStoreFileSize().get(Size.Unit.MEGABYTE);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>        storeFileSizeMB += r.getStoreFileSize().get(Size.Unit.MEGABYTE);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>        memStoreSizeMB += r.getMemStoreSize().get(Size.Unit.MEGABYTE);<a name="line.338"></a>
-<span class="sourceLineNo">339</span>        storefileIndexSizeKB += r.getStoreFileUncompressedDataIndexSize().get(Size.Unit.KILOBYTE);<a name="line.339"></a>
-<span class="sourceLineNo">340</span>        readRequestsCount += r.getReadRequestCount();<a name="line.340"></a>
-<span class="sourceLineNo">341</span>        cpRequestsCount += r.getCpRequestCount();<a name="line.341"></a>
-<span class="sourceLineNo">342</span>        writeRequestsCount += r.getWriteRequestCount();<a name="line.342"></a>
-<span class="sourceLineNo">343</span>        filteredReadRequestsCount += r.getFilteredReadRequestCount();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>        rootLevelIndexSizeKB += r.getStoreFileRootLevelIndexSize().get(Size.Unit.KILOBYTE);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>        bloomFilterSizeMB += r.getBloomFilterSize().get(Size.Unit.MEGABYTE);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>        compactedCellCount += r.getCompactedCellCount();<a name="line.346"></a>
-<span class="sourceLineNo">347</span>        compactingCellCount += r.getCompactingCellCount();<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      }<a name="line.348"></a>
-<span class="sourceLineNo">349</span>      StringBuilder sb = Strings.appendKeyValue(new StringBuilder(), "requestsPerSecond",<a name="line.349"></a>
-<span class="sourceLineNo">350</span>            Double.valueOf(getRequestCountPerSecond()));<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      Strings.appendKeyValue(sb, "numberOfOnlineRegions",<a name="line.351"></a>
-<span class="sourceLineNo">352</span>          Integer.valueOf(getRegionMetrics().size()));<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      Strings.appendKeyValue(sb, "usedHeapMB", getUsedHeapSize());<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      Strings.appendKeyValue(sb, "maxHeapMB", getMaxHeapSize());<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      Strings.appendKeyValue(sb, "numberOfStores", storeCount);<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      Strings.appendKeyValue(sb, "numberOfStorefiles", storeFileCount);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      Strings.appendKeyValue(sb, "storefileUncompressedSizeMB", uncompressedStoreFileSizeMB);<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      Strings.appendKeyValue(sb, "storefileSizeMB", storeFileSizeMB);<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      if (uncompressedStoreFileSizeMB != 0) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        Strings.appendKeyValue(sb, "compressionRatio", String.format("%.4f",<a name="line.360"></a>
-<span class="sourceLineNo">361</span>            (float) storeFileSizeMB / (float) uncompressedStoreFileSizeMB));<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      }<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      Strings.appendKeyValue(sb, "memstoreSizeMB", memStoreSizeMB);<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      Strings.appendKeyValue(sb, "readRequestsCount", readRequestsCount);<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      Strings.appendKeyValue(sb, "cpRequestsCount", cpRequestsCount);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      Strings.appendKeyValue(sb, "filteredReadRequestsCount", filteredReadRequestsCount);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      Strings.appendKeyValue(sb, "writeRequestsCount", writeRequestsCount);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      Strings.appendKeyValue(sb, "rootIndexSizeKB", rootLevelIndexSizeKB);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      Strings.appendKeyValue(sb, "totalStaticIndexSizeKB", storefileIndexSizeKB);<a name="line.369"></a>
-<span class="sourceLineNo">370</span>      Strings.appendKeyValue(sb, "totalStaticBloomSizeKB", bloomFilterSizeMB);<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      Strings.appendKeyValue(sb, "totalCompactingKVs", compactingCellCount);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      Strings.appendKeyValue(sb, "currentCompactedKVs", compactedCellCount);<a name="line.372"></a>
-<span class="sourceLineNo">373</span>      float compactionProgressPct = Float.NaN;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      if (compactingCellCount &gt; 0) {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>        compactionProgressPct =<a name="line.375"></a>
-<span class="sourceLineNo">376</span>            Float.valueOf((float) compactedCellCount / compactingCellCount);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      }<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      Strings.appendKeyValue(sb, "compactionProgressPct", compactionProgressPct);<a name="line.378"></a>
-<span class="sourceLineNo">379</span>      Strings.appendKeyValue(sb, "coprocessors", getCoprocessorNames());<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      return sb.toString();<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>}<a name="line.383"></a>
+<span class="sourceLineNo">199</span>  public ServerMetricsBuilder setLastReportTimestamp(long value) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    this.lastReportTimestamp = value;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    return this;<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>  public ServerMetrics build() {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    return new ServerMetricsImpl(<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        serverName,<a name="line.206"></a>
+<span class="sourceLineNo">207</span>        versionNumber,<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        version,<a name="line.208"></a>
+<span class="sourceLineNo">209</span>        requestCountPerSecond,<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        requestCount,<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        usedHeapSize,<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        maxHeapSize,<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        infoServerPort,<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        sources,<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        sink,<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        regionStatus,<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        coprocessorNames,<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        reportTimestamp,<a name="line.218"></a>
+<span class="sourceLineNo">219</span>        lastReportTimestamp);<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 static class ServerMetricsImpl implements ServerMetrics {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    private final ServerName serverName;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    private final int versionNumber;<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    private final String version;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    private final long requestCountPerSecond;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    private final long requestCount;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    private final Size usedHeapSize;<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    private final Size maxHeapSize;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    private final int infoServerPort;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    private final List&lt;ReplicationLoadSource&gt; sources;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    @Nullable<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    private final ReplicationLoadSink sink;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    private final Map&lt;byte[], RegionMetrics&gt; regionStatus;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    private final Set&lt;String&gt; coprocessorNames;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    private final long reportTimestamp;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    private final long lastReportTimestamp;<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>    ServerMetricsImpl(ServerName serverName, int versionNumber, String version,<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        long requestCountPerSecond, long requestCount, Size usedHeapSize, Size maxHeapSize,<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        int infoServerPort, List&lt;ReplicationLoadSource&gt; sources, ReplicationLoadSink sink,<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        Map&lt;byte[], RegionMetrics&gt; regionStatus, Set&lt;String&gt; coprocessorNames, long reportTimestamp,<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        long lastReportTimestamp) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      this.serverName = Preconditions.checkNotNull(serverName);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      this.versionNumber = versionNumber;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      this.version = version;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      this.requestCountPerSecond = requestCountPerSecond;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      this.requestCount = requestCount;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      this.usedHeapSize = Preconditions.checkNotNull(usedHeapSize);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      this.maxHeapSize = Preconditions.checkNotNull(maxHeapSize);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      this.infoServerPort = infoServerPort;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      this.sources = Preconditions.checkNotNull(sources);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      this.sink = sink;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      this.regionStatus = Preconditions.checkNotNull(regionStatus);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      this.coprocessorNames =Preconditions.checkNotNull(coprocessorNames);<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      this.reportTimestamp = reportTimestamp;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      this.lastReportTimestamp = lastReportTimestamp;<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>    @Override<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    public ServerName getServerName() {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      return serverName;<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>    @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    public int getVersionNumber() {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      return versionNumber;<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>    public String getVersion() {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      return version;<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>    @Override<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    public long getRequestCountPerSecond() {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      return requestCountPerSecond;<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 long getRequestCount() {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      return requestCount;<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>    public Size getUsedHeapSize() {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      return usedHeapSize;<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>    public Size getMaxHeapSize() {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>      return maxHeapSize;<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>    @Override<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    public int getInfoServerPort() {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      return infoServerPort;<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>    @Override<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    public List&lt;ReplicationLoadSource&gt; getReplicationLoadSourceList() {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      return Collections.unmodifiableList(sources);<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>    @Override<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    public ReplicationLoadSink getReplicationLoadSink() {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      return sink;<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>    @Override<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    public Map&lt;byte[], RegionMetrics&gt; getRegionMetrics() {<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      return Collections.unmodifiableMap(regionStatus);<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>    @Override<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    public Set&lt;String&gt; getCoprocessorNames() {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      return Collections.unmodifiableSet(coprocessorNames);<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">319</span>    @Override<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    public long getReportTimestamp() {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      return reportTimestamp;<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    }<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>    @Override<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    public long getLastReportTimestamp() {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      return lastReportTimestamp;<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>    @Override<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    public String toString() {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      int storeCount = 0;<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      int storeFileCount = 0;<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      long uncompressedStoreFileSizeMB = 0;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      long storeFileSizeMB = 0;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      long memStoreSizeMB = 0;<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      long storefileIndexSizeKB = 0;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      long rootLevelIndexSizeKB = 0;<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      long readRequestsCount = 0;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>      long cpRequestsCount = 0;<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      long writeRequestsCount = 0;<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      long filteredReadRequestsCount = 0;<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      long bloomFilterSizeMB = 0;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      long compactingCellCount = 0;<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      long compactedCellCount = 0;<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      for (RegionMetrics r : getRegionMetrics().values()) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>        storeCount += r.getStoreCount();<a name="line.346"></a>
+<span class="sourceLineNo">347</span>        storeFileCount += r.getStoreFileCount();<a name="line.347"></a>
+<span class="sourceLineNo">348</span>        uncompressedStoreFileSizeMB += r.getUncompressedStoreFileSize().get(Size.Unit.MEGABYTE);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>        storeFileSizeMB += r.getStoreFileSize().get(Size.Unit.MEGABYTE);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        memStoreSizeMB += r.getMemStoreSize().get(Size.Unit.MEGABYTE);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        storefileIndexSizeKB += r.getStoreFileUncompressedDataIndexSize().get(Size.Unit.KILOBYTE);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        readRequestsCount += r.getReadRequestCount();<a name="line.352"></a>
+<span class="sourceLineNo">353</span>        cpRequestsCount += r.getCpRequestCount();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        writeRequestsCount += r.getWriteRequestCount();<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        filteredReadRequestsCount += r.getFilteredReadRequestCount();<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        rootLevelIndexSizeKB += r.getStoreFileRootLevelIndexSize().get(Size.Unit.KILOBYTE);<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        bloomFilterSizeMB += r.getBloomFilterSize().get(Size.Unit.MEGABYTE);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>        compactedCellCount += r.getCompactedCellCount();<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        compactingCellCount += r.getCompactingCellCount();<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      StringBuilder sb = Strings.appendKeyValue(new StringBuilder(), "requestsPerSecond",<a name="line.361"></a>
+<span class="sourceLineNo">362</span>            Double.valueOf(getRequestCountPerSecond()));<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      Strings.appendKeyValue(sb, "numberOfOnlineRegions",<a name="line.363"></a>
+<span class="sourceLineNo">364</span>          Integer.valueOf(getRegionMetrics().size()));<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      Strings.appendKeyValue(sb, "usedHeapMB", getUsedHeapSize());<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      Strings.appendKeyValue(sb, "maxHeapMB", getMaxHeapSize());<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      Strings.appendKeyValue(sb, "numberOfStores", storeCount);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      Strings.appendKeyValue(sb, "numberOfStorefiles", storeFileCount);<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      Strings.appendKeyValue(sb, "storefileUncompressedSizeMB", uncompressedStoreFileSizeMB);<a name="line.369"></a>
+<span class="sourceLineNo">370</span>      Strings.appendKeyValue(sb, "storefileSizeMB", storeFileSizeMB);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>      if (uncompressedStoreFileSizeMB != 0) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>        Strings.appendKeyValue(sb, "compressionRatio", String.format("%.4f",<a name="line.372"></a>
+<span class="sourceLineNo">373</span>            (float) storeFileSizeMB / (float) uncompressedStoreFileSizeMB));<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      Strings.appendKeyValue(sb, "memstoreSizeMB", memStoreSizeMB);<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      Strings.appendKeyValue(sb, "readRequestsCount", readRequestsCount);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      Strings.appendKeyValue(sb, "cpRequestsCount", cpRequestsCount);<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      Strings.appendKeyValue(sb, "filteredReadRequestsCount", filteredReadRequestsCount);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      Strings.appendKeyValue(sb, "writeRequestsCount", writeRequestsCount);<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      Strings.appendKeyValue(sb, "rootIndexSizeKB", rootLevelIndexSizeKB);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      Strings.appendKeyValue(sb, "totalStaticIndexSizeKB", storefileIndexSizeKB);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>      Strings.appendKeyValue(sb, "totalStaticBloomSizeKB", bloomFilterSizeMB);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      Strings.appendKeyValue(sb, "totalCompactingKVs", compactingCellCount);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      Strings.appendKeyValue(sb, "currentCompactedKVs", compactedCellCount);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      float compactionProgressPct = Float.NaN;<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      if (compactingCellCount &gt; 0) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        compactionProgressPct =<a name="line.387"></a>
+<span class="sourceLineNo">388</span>            Float.valueOf((float) compactedCellCount / compactingCellCount);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      }<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      Strings.appendKeyValue(sb, "compactionProgressPct", compactionProgressPct);<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      Strings.appendKeyValue(sb, "coprocessors", getCoprocessorNames());<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      return sb.toString();<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>
+<span class="sourceLineNo">395</span>}<a name="line.395"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/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 fbe185e..6a23f31 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 = "59867eeeebd28fcc49f338ef36769fb6a9bff4dc";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "d7561cee50acf2e3a52b8a38c71259d60b653ed3";<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 Jul  9 14:39:06 UTC 2018";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Tue Jul 10 17:15:36 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 = "0c4202f0f4e6233beea2dec060218d34";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "e26484db2adaa453ac5ea2d97df0d969";<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/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/client/VersionInfoUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/VersionInfoUtil.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/VersionInfoUtil.html
index 5c7f786..a635395 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/VersionInfoUtil.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/VersionInfoUtil.html
@@ -78,77 +78,69 @@
 <span class="sourceLineNo">070</span>  /**<a name="line.70"></a>
 <span class="sourceLineNo">071</span>   * @return the versionInfo extracted from the current RpcCallContext<a name="line.71"></a>
 <span class="sourceLineNo">072</span>   */<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private static HBaseProtos.VersionInfo getCurrentClientVersionInfo() {<a name="line.73"></a>
+<span class="sourceLineNo">073</span>  public static HBaseProtos.VersionInfo getCurrentClientVersionInfo() {<a name="line.73"></a>
 <span class="sourceLineNo">074</span>    return RpcServer.getCurrentCall().map(RpcCallContext::getClientVersionInfo).orElse(null);<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>  /**<a name="line.77"></a>
-<span class="sourceLineNo">078</span>   * @return the version number extracted from the current RpcCallContext as int.<a name="line.78"></a>
-<span class="sourceLineNo">079</span>   *         (e.g. 0x0103004 is 1.3.4)<a name="line.79"></a>
-<span class="sourceLineNo">080</span>   */<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  public static int getCurrentClientVersionNumber() {<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    return getVersionNumber(getCurrentClientVersionInfo());<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><a name="line.85"></a>
-<span class="sourceLineNo">086</span>  /**<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   * @param version<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   * @return the passed-in &lt;code&gt;version&lt;/code&gt; int as a version String<a name="line.88"></a>
-<span class="sourceLineNo">089</span>   *         (e.g. 0x0103004 is 1.3.4)<a name="line.89"></a>
-<span class="sourceLineNo">090</span>   */<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  public static String versionNumberToString(final int version) {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    return String.format("%d.%d.%d",<a name="line.92"></a>
-<span class="sourceLineNo">093</span>        ((version &gt;&gt; 20) &amp; 0xff),<a name="line.93"></a>
-<span class="sourceLineNo">094</span>        ((version &gt;&gt; 12) &amp; 0xff),<a name="line.94"></a>
-<span class="sourceLineNo">095</span>        (version &amp; 0xfff));<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  }<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>   * Pack the full number version in a int. by shifting each component by 8bit,<a name="line.99"></a>
-<span class="sourceLineNo">100</span>   * except the dot release which has 12bit.<a name="line.100"></a>
-<span class="sourceLineNo">101</span>   * Examples: (1.3.4 is 0x0103004, 2.1.0 is 0x0201000)<a name="line.101"></a>
-<span class="sourceLineNo">102</span>   * @param versionInfo the VersionInfo object to pack<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * @return the version number as int. (e.g. 0x0103004 is 1.3.4)<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   */<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  public static int getVersionNumber(final HBaseProtos.VersionInfo versionInfo) {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    if (versionInfo != null) {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      try {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>        final String[] components = getVersionComponents(versionInfo);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>        int clientMajor = components.length &gt; 0 ? Integer.parseInt(components[0]) : 0;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>        int clientMinor = components.length &gt; 1 ? Integer.parseInt(components[1]) : 0;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>        int clientPatch = components.length &gt; 2 ? Integer.parseInt(components[2]) : 0;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>        return buildVersionNumber(clientMajor, clientMinor, clientPatch);<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      } catch (NumberFormatException e) {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>        int clientMajor = versionInfo.hasVersionMajor() ? versionInfo.getVersionMajor() : 0;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>        int clientMinor = versionInfo.hasVersionMinor() ? versionInfo.getVersionMinor() : 0;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>        return buildVersionNumber(clientMajor, clientMinor, 0);<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>    return(0); // no version<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>   * Pack the full number version in a int. by shifting each component by 8bit,<a name="line.123"></a>
-<span class="sourceLineNo">124</span>   * except the dot release which has 12bit.<a name="line.124"></a>
-<span class="sourceLineNo">125</span>   * Examples: (1.3.4 is 0x0103004, 2.1.0 is 0x0201000)<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   * @param major version major number<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * @param minor version minor number<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   * @param patch version patch number<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   * @return the version number as int. (e.g. 0x0103004 is 1.3.4)<a name="line.129"></a>
-<span class="sourceLineNo">130</span>   */<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  private static int buildVersionNumber(int major, int minor, int patch) {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    return (major &lt;&lt; 20) | (minor &lt;&lt; 12) | patch;<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>  /**<a name="line.135"></a>
-<span class="sourceLineNo">136</span>   * Returns the version components<a name="line.136"></a>
-<span class="sourceLineNo">137</span>   * Examples: "1.2.3" returns [1, 2, 3], "4.5.6-SNAPSHOT" returns [4, 5, 6, "SNAPSHOT"]<a name="line.137"></a>
-<span class="sourceLineNo">138</span>   * @returns the components of the version string<a name="line.138"></a>
-<span class="sourceLineNo">139</span>   */<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  private static String[] getVersionComponents(final HBaseProtos.VersionInfo versionInfo) {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    return versionInfo.getVersion().split("[\\.-]");<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">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>  /**<a name="line.78"></a>
+<span class="sourceLineNo">079</span>   * @param version<a name="line.79"></a>
+<span class="sourceLineNo">080</span>   * @return the passed-in &lt;code&gt;version&lt;/code&gt; int as a version String<a name="line.80"></a>
+<span class="sourceLineNo">081</span>   *         (e.g. 0x0103004 is 1.3.4)<a name="line.81"></a>
+<span class="sourceLineNo">082</span>   */<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  public static String versionNumberToString(final int version) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    return String.format("%d.%d.%d",<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        ((version &gt;&gt; 20) &amp; 0xff),<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        ((version &gt;&gt; 12) &amp; 0xff),<a name="line.86"></a>
+<span class="sourceLineNo">087</span>        (version &amp; 0xfff));<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>  /**<a name="line.90"></a>
+<span class="sourceLineNo">091</span>   * Pack the full number version in a int. by shifting each component by 8bit,<a name="line.91"></a>
+<span class="sourceLineNo">092</span>   * except the dot release which has 12bit.<a name="line.92"></a>
+<span class="sourceLineNo">093</span>   * Examples: (1.3.4 is 0x0103004, 2.1.0 is 0x0201000)<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   * @param versionInfo the VersionInfo object to pack<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   * @return the version number as int. (e.g. 0x0103004 is 1.3.4)<a name="line.95"></a>
+<span class="sourceLineNo">096</span>   */<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  public static int getVersionNumber(final HBaseProtos.VersionInfo versionInfo) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    if (versionInfo != null) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      try {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>        final String[] components = getVersionComponents(versionInfo);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>        int clientMajor = components.length &gt; 0 ? Integer.parseInt(components[0]) : 0;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>        int clientMinor = components.length &gt; 1 ? Integer.parseInt(components[1]) : 0;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>        int clientPatch = components.length &gt; 2 ? Integer.parseInt(components[2]) : 0;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        return buildVersionNumber(clientMajor, clientMinor, clientPatch);<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      } catch (NumberFormatException e) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        int clientMajor = versionInfo.hasVersionMajor() ? versionInfo.getVersionMajor() : 0;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        int clientMinor = versionInfo.hasVersionMinor() ? versionInfo.getVersionMinor() : 0;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        return buildVersionNumber(clientMajor, clientMinor, 0);<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>    return(0); // no version<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>  /**<a name="line.114"></a>
+<span class="sourceLineNo">115</span>   * Pack the full number version in a int. by shifting each component by 8bit,<a name="line.115"></a>
+<span class="sourceLineNo">116</span>   * except the dot release which has 12bit.<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   * Examples: (1.3.4 is 0x0103004, 2.1.0 is 0x0201000)<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   * @param major version major number<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   * @param minor version minor number<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   * @param patch version patch number<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   * @return the version number as int. (e.g. 0x0103004 is 1.3.4)<a name="line.121"></a>
+<span class="sourceLineNo">122</span>   */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>  private static int buildVersionNumber(int major, int minor, int patch) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    return (major &lt;&lt; 20) | (minor &lt;&lt; 12) | patch;<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>   * Returns the version components<a name="line.128"></a>
+<span class="sourceLineNo">129</span>   * Examples: "1.2.3" returns [1, 2, 3], "4.5.6-SNAPSHOT" returns [4, 5, 6, "SNAPSHOT"]<a name="line.129"></a>
+<span class="sourceLineNo">130</span>   * @returns the components of the version string<a name="line.130"></a>
+<span class="sourceLineNo">131</span>   */<a name="line.131"></a>
+<span class="sourceLineNo">132</span>  private static String[] getVersionComponents(final HBaseProtos.VersionInfo versionInfo) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    return versionInfo.getVersion().split("[\\.-]");<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>
 
 
 


[14/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html
index a5d418c..95f2a65 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html
@@ -96,3682 +96,3680 @@
 <span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.88"></a>
 <span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.89"></a>
 <span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.exceptions.MergeRegionException;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.master.MasterRpcServices.BalanceSwitchMode;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.master.assignment.AssignmentManager;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.master.assignment.MergeTableRegionsProcedure;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.master.assignment.RegionStates;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.master.balancer.BalancerChore;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.master.balancer.ClusterStatusChore;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.master.cleaner.CleanerChore;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.master.cleaner.HFileCleaner;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.master.cleaner.LogCleaner;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.master.cleaner.ReplicationBarrierCleaner;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.master.locking.LockManager;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan.PlanType;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerFactory;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.master.procedure.CreateTableProcedure;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.master.procedure.DeleteNamespaceProcedure;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.master.procedure.DisableTableProcedure;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.master.procedure.EnableTableProcedure;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.master.procedure.InitMetaProcedure;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.master.procedure.ModifyTableProcedure;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.master.procedure.ProcedurePrepareLatch;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.master.procedure.ServerCrashProcedure;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.master.procedure.TruncateTableProcedure;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.master.replication.AbstractPeerProcedure;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.master.replication.AddPeerProcedure;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.master.replication.DisablePeerProcedure;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.master.replication.EnablePeerProcedure;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.master.replication.RemovePeerProcedure;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.master.replication.ReplicationPeerManager;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.master.replication.SyncReplicationReplayWALManager;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.master.replication.TransitPeerSyncReplicationStateProcedure;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.master.replication.UpdatePeerConfigProcedure;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.master.snapshot.SnapshotManager;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.master.zksyncer.MasterAddressSyncer;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.master.zksyncer.MetaLocationSyncer;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.mob.MobConstants;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.monitoring.MemoryBoundedLogMessageBuffer;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.monitoring.MonitoredTask;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.procedure.MasterProcedureManagerHost;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.procedure.flush.MasterFlushTableProcedureManager;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.procedure2.LockedResource;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.procedure2.ProcedureEvent;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher.RemoteProcedure;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.quotas.MasterQuotaManager;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.quotas.MasterSpaceQuotaObserver;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.quotas.QuotaObserverChore;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.quotas.QuotaUtil;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.quotas.SnapshotQuotaObserverChore;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshotNotifier;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshotNotifierFactory;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.regionserver.DefaultStoreEngine;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.regionserver.HStore;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.regionserver.RegionSplitPolicy;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.regionserver.compactions.ExploringCompactionPolicy;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.regionserver.compactions.FIFOCompactionPolicy;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.replication.ReplicationLoadSource;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.replication.ReplicationUtils;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.replication.SyncReplicationState;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.replication.master.ReplicationHFileCleaner;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.replication.master.ReplicationLogCleaner;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.replication.master.ReplicationPeerConfigUpgrader;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.trace.TraceUtil;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>import org.apache.hadoop.hbase.util.Addressing;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>import org.apache.hadoop.hbase.util.CompressionTest;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>import org.apache.hadoop.hbase.util.EncryptionTest;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>import org.apache.hadoop.hbase.util.HFileArchiveUtil;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>import org.apache.hadoop.hbase.util.HasThread;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>import org.apache.hadoop.hbase.util.IdLock;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>import org.apache.hadoop.hbase.util.ModifyRegionUtils;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>import org.apache.hadoop.hbase.util.VersionInfo;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>import org.apache.hadoop.hbase.zookeeper.LoadBalancerTracker;<a name="line.199"></a>
-<span class="sourceLineNo">200</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.200"></a>
-<span class="sourceLineNo">201</span>import org.apache.hadoop.hbase.zookeeper.MasterMaintenanceModeTracker;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>import org.apache.hadoop.hbase.zookeeper.RegionNormalizerTracker;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>import org.apache.hadoop.hbase.zookeeper.ZKClusterId;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>import org.apache.hadoop.hbase.zookeeper.ZKWatcher;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>import org.apache.hadoop.hbase.zookeeper.ZNodePaths;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.207"></a>
-<span class="sourceLineNo">208</span>import org.apache.zookeeper.KeeperException;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>import org.eclipse.jetty.server.Server;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>import org.eclipse.jetty.server.ServerConnector;<a name="line.210"></a>
-<span class="sourceLineNo">211</span>import org.eclipse.jetty.servlet.ServletHolder;<a name="line.211"></a>
-<span class="sourceLineNo">212</span>import org.eclipse.jetty.webapp.WebAppContext;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>import org.slf4j.Logger;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>import org.slf4j.LoggerFactory;<a name="line.214"></a>
-<span class="sourceLineNo">215</span><a name="line.215"></a>
-<span class="sourceLineNo">216</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.216"></a>
-<span class="sourceLineNo">217</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Quotas;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceViolationPolicy;<a name="line.223"></a>
-<span class="sourceLineNo">224</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription;<a name="line.224"></a>
-<span class="sourceLineNo">225</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos;<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>/**<a name="line.227"></a>
-<span class="sourceLineNo">228</span> * HMaster is the "master server" for HBase. An HBase cluster has one active<a name="line.228"></a>
-<span class="sourceLineNo">229</span> * master.  If many masters are started, all compete.  Whichever wins goes on to<a name="line.229"></a>
-<span class="sourceLineNo">230</span> * run the cluster.  All others park themselves in their constructor until<a name="line.230"></a>
-<span class="sourceLineNo">231</span> * master or cluster shutdown or until the active master loses its lease in<a name="line.231"></a>
-<span class="sourceLineNo">232</span> * zookeeper.  Thereafter, all running master jostle to take over master role.<a name="line.232"></a>
-<span class="sourceLineNo">233</span> *<a name="line.233"></a>
-<span class="sourceLineNo">234</span> * &lt;p&gt;The Master can be asked shutdown the cluster. See {@link #shutdown()}.  In<a name="line.234"></a>
-<span class="sourceLineNo">235</span> * this case it will tell all regionservers to go down and then wait on them<a name="line.235"></a>
-<span class="sourceLineNo">236</span> * all reporting in that they are down.  This master will then shut itself down.<a name="line.236"></a>
-<span class="sourceLineNo">237</span> *<a name="line.237"></a>
-<span class="sourceLineNo">238</span> * &lt;p&gt;You can also shutdown just this master.  Call {@link #stopMaster()}.<a name="line.238"></a>
-<span class="sourceLineNo">239</span> *<a name="line.239"></a>
-<span class="sourceLineNo">240</span> * @see org.apache.zookeeper.Watcher<a name="line.240"></a>
-<span class="sourceLineNo">241</span> */<a name="line.241"></a>
-<span class="sourceLineNo">242</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.242"></a>
-<span class="sourceLineNo">243</span>@SuppressWarnings("deprecation")<a name="line.243"></a>
-<span class="sourceLineNo">244</span>public class HMaster extends HRegionServer implements MasterServices {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  private static Logger LOG = LoggerFactory.getLogger(HMaster.class);<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>  /**<a name="line.247"></a>
-<span class="sourceLineNo">248</span>   * Protection against zombie master. Started once Master accepts active responsibility and<a name="line.248"></a>
-<span class="sourceLineNo">249</span>   * starts taking over responsibilities. Allows a finite time window before giving up ownership.<a name="line.249"></a>
-<span class="sourceLineNo">250</span>   */<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  private static class InitializationMonitor extends HasThread {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    /** The amount of time in milliseconds to sleep before checking initialization status. */<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    public static final String TIMEOUT_KEY = "hbase.master.initializationmonitor.timeout";<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    public static final long TIMEOUT_DEFAULT = TimeUnit.MILLISECONDS.convert(15, TimeUnit.MINUTES);<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>    /**<a name="line.256"></a>
-<span class="sourceLineNo">257</span>     * When timeout expired and initialization has not complete, call {@link System#exit(int)} when<a name="line.257"></a>
-<span class="sourceLineNo">258</span>     * true, do nothing otherwise.<a name="line.258"></a>
-<span class="sourceLineNo">259</span>     */<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    public static final String HALT_KEY = "hbase.master.initializationmonitor.haltontimeout";<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    public static final boolean HALT_DEFAULT = false;<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>    private final HMaster master;<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    private final long timeout;<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    private final boolean haltOnTimeout;<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>    /** Creates a Thread that monitors the {@link #isInitialized()} state. */<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    InitializationMonitor(HMaster master) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      super("MasterInitializationMonitor");<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      this.master = master;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      this.timeout = master.getConfiguration().getLong(TIMEOUT_KEY, TIMEOUT_DEFAULT);<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      this.haltOnTimeout = master.getConfiguration().getBoolean(HALT_KEY, HALT_DEFAULT);<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      this.setDaemon(true);<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>    @Override<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    public void run() {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      try {<a name="line.278"></a>
-<span class="sourceLineNo">279</span>        while (!master.isStopped() &amp;&amp; master.isActiveMaster()) {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>          Thread.sleep(timeout);<a name="line.280"></a>
-<span class="sourceLineNo">281</span>          if (master.isInitialized()) {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>            LOG.debug("Initialization completed within allotted tolerance. Monitor exiting.");<a name="line.282"></a>
-<span class="sourceLineNo">283</span>          } else {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>            LOG.error("Master failed to complete initialization after " + timeout + "ms. Please"<a name="line.284"></a>
-<span class="sourceLineNo">285</span>                + " consider submitting a bug report including a thread dump of this process.");<a name="line.285"></a>
-<span class="sourceLineNo">286</span>            if (haltOnTimeout) {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>              LOG.error("Zombie Master exiting. Thread dump to stdout");<a name="line.287"></a>
-<span class="sourceLineNo">288</span>              Threads.printThreadInfo(System.out, "Zombie HMaster");<a name="line.288"></a>
-<span class="sourceLineNo">289</span>              System.exit(-1);<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>      } catch (InterruptedException ie) {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>        LOG.trace("InitMonitor thread interrupted. Existing.");<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      }<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>  // MASTER is name of the webapp and the attribute name used stuffing this<a name="line.299"></a>
-<span class="sourceLineNo">300</span>  //instance into web context.<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  public static final String MASTER = "master";<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>  // Manager and zk listener for master election<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  private final ActiveMasterManager activeMasterManager;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  // Region server tracker<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  private RegionServerTracker regionServerTracker;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>  // Draining region server tracker<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  private DrainingServerTracker drainingServerTracker;<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  // Tracker for load balancer state<a name="line.309"></a>
-<span class="sourceLineNo">310</span>  LoadBalancerTracker loadBalancerTracker;<a name="line.310"></a>
-<span class="sourceLineNo">311</span>  // Tracker for meta location, if any client ZK quorum specified<a name="line.311"></a>
-<span class="sourceLineNo">312</span>  MetaLocationSyncer metaLocationSyncer;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  // Tracker for active master location, if any client ZK quorum specified<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  MasterAddressSyncer masterAddressSyncer;<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>  // Tracker for split and merge state<a name="line.316"></a>
-<span class="sourceLineNo">317</span>  private SplitOrMergeTracker splitOrMergeTracker;<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span>  // Tracker for region normalizer state<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  private RegionNormalizerTracker regionNormalizerTracker;<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span>  //Tracker for master maintenance mode setting<a name="line.322"></a>
-<span class="sourceLineNo">323</span>  private MasterMaintenanceModeTracker maintenanceModeTracker;<a name="line.323"></a>
-<span class="sourceLineNo">324</span><a name="line.324"></a>
-<span class="sourceLineNo">325</span>  private ClusterSchemaService clusterSchemaService;<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public static final String HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS =<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    "hbase.master.wait.on.service.seconds";<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  public static final int DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS = 5 * 60;<a name="line.329"></a>
-<span class="sourceLineNo">330</span><a name="line.330"></a>
-<span class="sourceLineNo">331</span>  // Metrics for the HMaster<a name="line.331"></a>
-<span class="sourceLineNo">332</span>  final MetricsMaster metricsMaster;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>  // file system manager for the master FS operations<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  private MasterFileSystem fileSystemManager;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  private MasterWalManager walManager;<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  // server manager to deal with region server info<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  private volatile ServerManager serverManager;<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>  // manager of assignment nodes in zookeeper<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  private AssignmentManager assignmentManager;<a name="line.341"></a>
-<span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>  // manager of replication<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  private ReplicationPeerManager replicationPeerManager;<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  private SyncReplicationReplayWALManager syncReplicationReplayWALManager;<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span>  // buffer for "fatal error" notices from region servers<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  // in the cluster. This is only used for assisting<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  // operations/debugging.<a name="line.350"></a>
-<span class="sourceLineNo">351</span>  MemoryBoundedLogMessageBuffer rsFatals;<a name="line.351"></a>
-<span class="sourceLineNo">352</span><a name="line.352"></a>
-<span class="sourceLineNo">353</span>  // flag set after we become the active master (used for testing)<a name="line.353"></a>
-<span class="sourceLineNo">354</span>  private volatile boolean activeMaster = false;<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span>  // flag set after we complete initialization once active<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  private final ProcedureEvent&lt;?&gt; initialized = new ProcedureEvent&lt;&gt;("master initialized");<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>  // flag set after master services are started,<a name="line.359"></a>
-<span class="sourceLineNo">360</span>  // initialization may have not completed yet.<a name="line.360"></a>
-<span class="sourceLineNo">361</span>  volatile boolean serviceStarted = false;<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span>  // Maximum time we should run balancer for<a name="line.363"></a>
-<span class="sourceLineNo">364</span>  private final int maxBlancingTime;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  // Maximum percent of regions in transition when balancing<a name="line.365"></a>
-<span class="sourceLineNo">366</span>  private final double maxRitPercent;<a name="line.366"></a>
-<span class="sourceLineNo">367</span><a name="line.367"></a>
-<span class="sourceLineNo">368</span>  private final LockManager lockManager = new LockManager(this);<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>  private LoadBalancer balancer;<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  private RegionNormalizer normalizer;<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  private BalancerChore balancerChore;<a name="line.372"></a>
-<span class="sourceLineNo">373</span>  private RegionNormalizerChore normalizerChore;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  private ClusterStatusChore clusterStatusChore;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  private ClusterStatusPublisher clusterStatusPublisherChore = null;<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>  CatalogJanitor catalogJanitorChore;<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  private LogCleaner logCleaner;<a name="line.378"></a>
-<span class="sourceLineNo">379</span>  private HFileCleaner hfileCleaner;<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  private ReplicationBarrierCleaner replicationBarrierCleaner;<a name="line.380"></a>
-<span class="sourceLineNo">381</span>  private ExpiredMobFileCleanerChore expiredMobFileCleanerChore;<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  private MobCompactionChore mobCompactChore;<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  private MasterMobCompactionThread mobCompactThread;<a name="line.383"></a>
-<span class="sourceLineNo">384</span>  // used to synchronize the mobCompactionStates<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  private final IdLock mobCompactionLock = new IdLock();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  // save the information of mob compactions in tables.<a name="line.386"></a>
-<span class="sourceLineNo">387</span>  // the key is table name, the value is the number of compactions in that table.<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  private Map&lt;TableName, AtomicInteger&gt; mobCompactionStates = Maps.newConcurrentMap();<a name="line.388"></a>
-<span class="sourceLineNo">389</span><a name="line.389"></a>
-<span class="sourceLineNo">390</span>  MasterCoprocessorHost cpHost;<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span>  private final boolean preLoadTableDescriptors;<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>  // Time stamps for when a hmaster became active<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  private long masterActiveTime;<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span>  // Time stamp for when HMaster finishes becoming Active Master<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  private long masterFinishedInitializationTime;<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>  //should we check the compression codec type at master side, default true, HBASE-6370<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  private final boolean masterCheckCompression;<a name="line.401"></a>
-<span class="sourceLineNo">402</span><a name="line.402"></a>
-<span class="sourceLineNo">403</span>  //should we check encryption settings at master side, default true<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  private final boolean masterCheckEncryption;<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>  Map&lt;String, Service&gt; coprocessorServiceHandlers = Maps.newHashMap();<a name="line.406"></a>
-<span class="sourceLineNo">407</span><a name="line.407"></a>
-<span class="sourceLineNo">408</span>  // monitor for snapshot of hbase tables<a name="line.408"></a>
-<span class="sourceLineNo">409</span>  SnapshotManager snapshotManager;<a name="line.409"></a>
-<span class="sourceLineNo">410</span>  // monitor for distributed procedures<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  private MasterProcedureManagerHost mpmHost;<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  // it is assigned after 'initialized' guard set to true, so should be volatile<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  private volatile MasterQuotaManager quotaManager;<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  private SpaceQuotaSnapshotNotifier spaceQuotaSnapshotNotifier;<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  private QuotaObserverChore quotaObserverChore;<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  private SnapshotQuotaObserverChore snapshotQuotaChore;<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  private ProcedureExecutor&lt;MasterProcedureEnv&gt; procedureExecutor;<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  private WALProcedureStore procedureStore;<a name="line.420"></a>
-<span class="sourceLineNo">421</span><a name="line.421"></a>
-<span class="sourceLineNo">422</span>  // handle table states<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  private TableStateManager tableStateManager;<a name="line.423"></a>
-<span class="sourceLineNo">424</span><a name="line.424"></a>
-<span class="sourceLineNo">425</span>  private long splitPlanCount;<a name="line.425"></a>
-<span class="sourceLineNo">426</span>  private long mergePlanCount;<a name="line.426"></a>
-<span class="sourceLineNo">427</span><a name="line.427"></a>
-<span class="sourceLineNo">428</span>  /* Handle favored nodes information */<a name="line.428"></a>
-<span class="sourceLineNo">429</span>  private FavoredNodesManager favoredNodesManager;<a name="line.429"></a>
-<span class="sourceLineNo">430</span><a name="line.430"></a>
-<span class="sourceLineNo">431</span>  /** jetty server for master to redirect requests to regionserver infoServer */<a name="line.431"></a>
-<span class="sourceLineNo">432</span>  private Server masterJettyServer;<a name="line.432"></a>
-<span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>  public static class RedirectServlet extends HttpServlet {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    private static final long serialVersionUID = 2894774810058302473L;<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    private final int regionServerInfoPort;<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    private final String regionServerHostname;<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>     * @param infoServer that we're trying to send all requests to<a name="line.440"></a>
-<span class="sourceLineNo">441</span>     * @param hostname may be null. if given, will be used for redirects instead of host from client.<a name="line.441"></a>
-<span class="sourceLineNo">442</span>     */<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    public RedirectServlet(InfoServer infoServer, String hostname) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>       regionServerInfoPort = infoServer.getPort();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>       regionServerHostname = hostname;<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    }<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>    @Override<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    public void doGet(HttpServletRequest request,<a name="line.449"></a>
-<span class="sourceLineNo">450</span>        HttpServletResponse response) throws ServletException, IOException {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      String redirectHost = regionServerHostname;<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      if(redirectHost == null) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        redirectHost = request.getServerName();<a name="line.453"></a>
-<span class="sourceLineNo">454</span>        if(!Addressing.isLocalAddress(InetAddress.getByName(redirectHost))) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>          LOG.warn("Couldn't resolve '" + redirectHost + "' as an address local to this node and '" +<a name="line.455"></a>
-<span class="sourceLineNo">456</span>              MASTER_HOSTNAME_KEY + "' is not set; client will get a HTTP 400 response. If " +<a name="line.456"></a>
-<span class="sourceLineNo">457</span>              "your HBase deployment relies on client accessible names that the region server process " +<a name="line.457"></a>
-<span class="sourceLineNo">458</span>              "can't resolve locally, then you should set the previously mentioned configuration variable " +<a name="line.458"></a>
-<span class="sourceLineNo">459</span>              "to an appropriate hostname.");<a name="line.459"></a>
-<span class="sourceLineNo">460</span>          // no sending client provided input back to the client, so the goal host is just in the logs.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>          response.sendError(400, "Request was to a host that I can't resolve for any of the network interfaces on " +<a name="line.461"></a>
-<span class="sourceLineNo">462</span>              "this node. If this is due to an intermediary such as an HTTP load balancer or other proxy, your HBase " +<a name="line.462"></a>
-<span class="sourceLineNo">463</span>              "administrator can set '" + MASTER_HOSTNAME_KEY + "' to point to the correct hostname.");<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          return;<a name="line.464"></a>
-<span class="sourceLineNo">465</span>        }<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      }<a name="line.466"></a>
-<span class="sourceLineNo">467</span>      // TODO this scheme should come from looking at the scheme registered in the infoserver's http server for the<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      // host and port we're using, but it's buried way too deep to do that ATM.<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      String redirectUrl = request.getScheme() + "://"<a name="line.469"></a>
-<span class="sourceLineNo">470</span>        + redirectHost + ":" + regionServerInfoPort<a name="line.470"></a>
-<span class="sourceLineNo">471</span>        + request.getRequestURI();<a name="line.471"></a>
-<span class="sourceLineNo">472</span>      response.sendRedirect(redirectUrl);<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><a name="line.475"></a>
-<span class="sourceLineNo">476</span>  /**<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * Initializes the HMaster. The steps are as follows:<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * &lt;p&gt;<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   * &lt;ol&gt;<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * &lt;li&gt;Initialize the local HRegionServer<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * &lt;li&gt;Start the ActiveMasterManager.<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   * &lt;/ol&gt;<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   * &lt;p&gt;<a name="line.483"></a>
-<span class="sourceLineNo">484</span>   * Remaining steps of initialization occur in<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   * #finishActiveMasterInitialization(MonitoredTask) after<a name="line.485"></a>
-<span class="sourceLineNo">486</span>   * the master becomes the active one.<a name="line.486"></a>
-<span class="sourceLineNo">487</span>   */<a name="line.487"></a>
-<span class="sourceLineNo">488</span>  public HMaster(final Configuration conf)<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      throws IOException, KeeperException {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    super(conf);<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    TraceUtil.initTracer(conf);<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    try {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      this.rsFatals = new MemoryBoundedLogMessageBuffer(<a name="line.493"></a>
-<span class="sourceLineNo">494</span>          conf.getLong("hbase.master.buffer.for.rs.fatals", 1 * 1024 * 1024));<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      LOG.info("hbase.rootdir=" + getRootDir() +<a name="line.495"></a>
-<span class="sourceLineNo">496</span>          ", hbase.cluster.distributed=" + this.conf.getBoolean(HConstants.CLUSTER_DISTRIBUTED, false));<a name="line.496"></a>
-<span class="sourceLineNo">497</span><a name="line.497"></a>
-<span class="sourceLineNo">498</span>      // Disable usage of meta replicas in the master<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      this.conf.setBoolean(HConstants.USE_META_REPLICAS, false);<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>      decorateMasterConfiguration(this.conf);<a name="line.501"></a>
-<span class="sourceLineNo">502</span><a name="line.502"></a>
-<span class="sourceLineNo">503</span>      // Hack! Maps DFSClient =&gt; Master for logs.  HDFS made this<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      // config param for task trackers, but we can piggyback off of it.<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      if (this.conf.get("mapreduce.task.attempt.id") == null) {<a name="line.505"></a>
-<span class="sourceLineNo">506</span>        this.conf.set("mapreduce.task.attempt.id", "hb_m_" + this.serverName.toString());<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>      // should we check the compression codec type at master side, default true, HBASE-6370<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      this.masterCheckCompression = conf.getBoolean("hbase.master.check.compression", true);<a name="line.510"></a>
-<span class="sourceLineNo">511</span><a name="line.511"></a>
-<span class="sourceLineNo">512</span>      // should we check encryption settings at master side, default true<a name="line.512"></a>
-<span class="sourceLineNo">513</span>      this.masterCheckEncryption = conf.getBoolean("hbase.master.check.encryption", true);<a name="line.513"></a>
-<span class="sourceLineNo">514</span><a name="line.514"></a>
-<span class="sourceLineNo">515</span>      this.metricsMaster = new MetricsMaster(new MetricsMasterWrapperImpl(this));<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>      // preload table descriptor at startup<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      this.preLoadTableDescriptors = conf.getBoolean("hbase.master.preload.tabledescriptors", true);<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>      this.maxBlancingTime = getMaxBalancingTime();<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      this.maxRitPercent = conf.getDouble(HConstants.HBASE_MASTER_BALANCER_MAX_RIT_PERCENT,<a name="line.521"></a>
-<span class="sourceLineNo">522</span>          HConstants.DEFAULT_HBASE_MASTER_BALANCER_MAX_RIT_PERCENT);<a name="line.522"></a>
-<span class="sourceLineNo">523</span><a name="line.523"></a>
-<span class="sourceLineNo">524</span>      // Do we publish the status?<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>      boolean shouldPublish = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      Class&lt;? extends ClusterStatusPublisher.Publisher&gt; publisherClass =<a name="line.528"></a>
-<span class="sourceLineNo">529</span>          conf.getClass(ClusterStatusPublisher.STATUS_PUBLISHER_CLASS,<a name="line.529"></a>
-<span class="sourceLineNo">530</span>              ClusterStatusPublisher.DEFAULT_STATUS_PUBLISHER_CLASS,<a name="line.530"></a>
-<span class="sourceLineNo">531</span>              ClusterStatusPublisher.Publisher.class);<a name="line.531"></a>
-<span class="sourceLineNo">532</span><a name="line.532"></a>
-<span class="sourceLineNo">533</span>      if (shouldPublish) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>        if (publisherClass == null) {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.535"></a>
-<span class="sourceLineNo">536</span>              ClusterStatusPublisher.DEFAULT_STATUS_PUBLISHER_CLASS +<a name="line.536"></a>
-<span class="sourceLineNo">537</span>              " is not set - not publishing status");<a name="line.537"></a>
-<span class="sourceLineNo">538</span>        } else {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>          clusterStatusPublisherChore = new ClusterStatusPublisher(this, conf, publisherClass);<a name="line.539"></a>
-<span class="sourceLineNo">540</span>          getChoreService().scheduleChore(clusterStatusPublisherChore);<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>      // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>        this.activeMasterManager = new ActiveMasterManager(zooKeeper, this.serverName, this);<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      } else {<a name="line.547"></a>
-<span class="sourceLineNo">548</span>        this.activeMasterManager = null;<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      }<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    } catch (Throwable t) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      // Make sure we log the exception. HMaster is often started via reflection and the<a name="line.551"></a>
-<span class="sourceLineNo">552</span>      // cause of failed startup is lost.<a name="line.552"></a>
-<span class="sourceLineNo">553</span>      LOG.error("Failed construction of Master", t);<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      throw t;<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">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>  @Override<a name="line.558"></a>
-<span class="sourceLineNo">559</span>  protected String getUseThisHostnameInstead(Configuration conf) {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    return conf.get(MASTER_HOSTNAME_KEY);<a name="line.560"></a>
-<span class="sourceLineNo">561</span>  }<a name="line.561"></a>
-<span class="sourceLineNo">562</span><a name="line.562"></a>
-<span class="sourceLineNo">563</span>  // Main run loop. Calls through to the regionserver run loop AFTER becoming active Master; will<a name="line.563"></a>
-<span class="sourceLineNo">564</span>  // block in here until then.<a name="line.564"></a>
-<span class="sourceLineNo">565</span>  @Override<a name="line.565"></a>
-<span class="sourceLineNo">566</span>  public void run() {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    try {<a name="line.567"></a>
-<span class="sourceLineNo">568</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>        Threads.setDaemonThreadRunning(new Thread(() -&gt; {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>          try {<a name="line.570"></a>
-<span class="sourceLineNo">571</span>            int infoPort = putUpJettyServer();<a name="line.571"></a>
-<span class="sourceLineNo">572</span>            startActiveMasterManager(infoPort);<a name="line.572"></a>
-<span class="sourceLineNo">573</span>          } catch (Throwable t) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>            // Make sure we log the exception.<a name="line.574"></a>
-<span class="sourceLineNo">575</span>            String error = "Failed to become Active Master";<a name="line.575"></a>
-<span class="sourceLineNo">576</span>            LOG.error(error, t);<a name="line.576"></a>
-<span class="sourceLineNo">577</span>            // Abort should have been called already.<a name="line.577"></a>
-<span class="sourceLineNo">578</span>            if (!isAborted()) {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>              abort(error, t);<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">584</span>      // Fall in here even if we have been aborted. Need to run the shutdown services and<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      // the super run call will do this for us.<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      super.run();<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    } finally {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      if (this.clusterSchemaService != null) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>        // If on way out, then we are no longer active master.<a name="line.589"></a>
-<span class="sourceLineNo">590</span>        this.clusterSchemaService.stopAsync();<a name="line.590"></a>
-<span class="sourceLineNo">591</span>        try {<a name="line.591"></a>
-<span class="sourceLineNo">592</span>          this.clusterSchemaService.awaitTerminated(<a name="line.592"></a>
-<span class="sourceLineNo">593</span>              getConfiguration().getInt(HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS,<a name="line.593"></a>
-<span class="sourceLineNo">594</span>              DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS), TimeUnit.SECONDS);<a name="line.594"></a>
-<span class="sourceLineNo">595</span>        } catch (TimeoutException te) {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>          LOG.warn("Failed shutdown of clusterSchemaService", te);<a name="line.596"></a>
-<span class="sourceLineNo">597</span>        }<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      }<a name="line.598"></a>
-<span class="sourceLineNo">599</span>      this.activeMaster = false;<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    }<a name="line.600"></a>
-<span class="sourceLineNo">601</span>  }<a name="line.601"></a>
-<span class="sourceLineNo">602</span><a name="line.602"></a>
-<span class="sourceLineNo">603</span>  // return the actual infoPort, -1 means disable info server.<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  private int putUpJettyServer() throws IOException {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    if (!conf.getBoolean("hbase.master.infoserver.redirect", true)) {<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      return -1;<a name="line.606"></a>
-<span class="sourceLineNo">607</span>    }<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    final int infoPort = conf.getInt("hbase.master.info.port.orig",<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      HConstants.DEFAULT_MASTER_INFOPORT);<a name="line.609"></a>
-<span class="sourceLineNo">610</span>    // -1 is for disabling info server, so no redirecting<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    if (infoPort &lt; 0 || infoServer == null) {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      return -1;<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    }<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    if(infoPort == infoServer.getPort()) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      return infoPort;<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    }<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    final String addr = conf.get("hbase.master.info.bindAddress", "0.0.0.0");<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    if (!Addressing.isLocalAddress(InetAddress.getByName(addr))) {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      String msg =<a name="line.619"></a>
-<span class="sourceLineNo">620</span>          "Failed to start redirecting jetty server. Address " + addr<a name="line.620"></a>
-<span class="sourceLineNo">621</span>              + " does not belong to this host. Correct configuration parameter: "<a name="line.621"></a>
-<span class="sourceLineNo">622</span>              + "hbase.master.info.bindAddress";<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      LOG.error(msg);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      throw new IOException(msg);<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    }<a name="line.625"></a>
-<span class="sourceLineNo">626</span><a name="line.626"></a>
-<span class="sourceLineNo">627</span>    // TODO I'm pretty sure we could just add another binding to the InfoServer run by<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    // the RegionServer and have it run the RedirectServlet instead of standing up<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    // a second entire stack here.<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    masterJettyServer = new Server();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>    final ServerConnector connector = new ServerConnector(masterJettyServer);<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    connector.setHost(addr);<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    connector.setPort(infoPort);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    masterJettyServer.addConnector(connector);<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    masterJettyServer.setStopAtShutdown(true);<a name="line.635"></a>
-<span class="sourceLineNo">636</span><a name="line.636"></a>
-<span class="sourceLineNo">637</span>    final String redirectHostname =<a name="line.637"></a>
-<span class="sourceLineNo">638</span>        StringUtils.isBlank(useThisHostnameInstead) ? null : useThisHostnameInstead;<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span>    final RedirectServlet redirect = new RedirectServlet(infoServer, redirectHostname);<a name="line.640"></a>
-<span class="sourceLineNo">641</span>    final WebAppContext context = new WebAppContext(null, "/", null, null, null, null, WebAppContext.NO_SESSIONS);<a name="line.641"></a>
-<span class="sourceLineNo">642</span>    context.addServlet(new ServletHolder(redirect), "/*");<a name="line.642"></a>
-<span class="sourceLineNo">643</span>    context.setServer(masterJettyServer);<a name="line.643"></a>
-<span class="sourceLineNo">644</span><a name="line.644"></a>
-<span class="sourceLineNo">645</span>    try {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>      masterJettyServer.start();<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    } catch (Exception e) {<a name="line.647"></a>
-<span class="sourceLineNo">648</span>      throw new IOException("Failed to start redirecting jetty server", e);<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    }<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    return connector.getLocalPort();<a name="line.650"></a>
-<span class="sourceLineNo">651</span>  }<a name="line.651"></a>
-<span class="sourceLineNo">652</span><a name="line.652"></a>
-<span class="sourceLineNo">653</span>  @Override<a name="line.653"></a>
-<span class="sourceLineNo">654</span>  protected Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    return builder -&gt; builder.setRegionReplication(conf.getInt(HConstants.META_REPLICAS_NUM, HConstants.DEFAULT_META_REPLICA_NUM));<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
-<span class="sourceLineNo">657</span>  /**<a name="line.657"></a>
-<span class="sourceLineNo">658</span>   * For compatibility, if failed with regionserver credentials, try the master one<a name="line.658"></a>
-<span class="sourceLineNo">659</span>   */<a name="line.659"></a>
-<span class="sourceLineNo">660</span>  @Override<a name="line.660"></a>
-<span class="sourceLineNo">661</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    try {<a name="line.662"></a>
-<span class="sourceLineNo">663</span>      super.login(user, host);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    } catch (IOException ie) {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      user.login("hbase.master.keytab.file",<a name="line.665"></a>
-<span class="sourceLineNo">666</span>        "hbase.master.kerberos.principal", host);<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    }<a name="line.667"></a>
-<span class="sourceLineNo">668</span>  }<a name="line.668"></a>
-<span class="sourceLineNo">669</span><a name="line.669"></a>
-<span class="sourceLineNo">670</span>  /**<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   * If configured to put regions on active master,<a name="line.671"></a>
-<span class="sourceLineNo">672</span>   * wait till a backup master becomes active.<a name="line.672"></a>
-<span class="sourceLineNo">673</span>   * Otherwise, loop till the server is stopped or aborted.<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   */<a name="line.674"></a>
-<span class="sourceLineNo">675</span>  @Override<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  protected void waitForMasterActive(){<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(conf);<a name="line.677"></a>
-<span class="sourceLineNo">678</span>    while (!(tablesOnMaster &amp;&amp; activeMaster) &amp;&amp; !isStopped() &amp;&amp; !isAborted()) {<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      sleeper.sleep();<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    }<a name="line.680"></a>
-<span class="sourceLineNo">681</span>  }<a name="line.681"></a>
-<span class="sourceLineNo">682</span><a name="line.682"></a>
-<span class="sourceLineNo">683</span>  @VisibleForTesting<a name="line.683"></a>
-<span class="sourceLineNo">684</span>  public MasterRpcServices getMasterRpcServices() {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    return (MasterRpcServices)rpcServices;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>  }<a name="line.686"></a>
-<span class="sourceLineNo">687</span><a name="line.687"></a>
-<span class="sourceLineNo">688</span>  public boolean balanceSwitch(final boolean b) throws IOException {<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    return getMasterRpcServices().switchBalancer(b, BalanceSwitchMode.ASYNC);<a name="line.689"></a>
-<span class="sourceLineNo">690</span>  }<a name="line.690"></a>
-<span class="sourceLineNo">691</span><a name="line.691"></a>
-<span class="sourceLineNo">692</span>  @Override<a name="line.692"></a>
-<span class="sourceLineNo">693</span>  protected String getProcessName() {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    return MASTER;<a name="line.694"></a>
-<span class="sourceLineNo">695</span>  }<a name="line.695"></a>
-<span class="sourceLineNo">696</span><a name="line.696"></a>
-<span class="sourceLineNo">697</span>  @Override<a name="line.697"></a>
-<span class="sourceLineNo">698</span>  protected boolean canCreateBaseZNode() {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    return true;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>  }<a name="line.700"></a>
-<span class="sourceLineNo">701</span><a name="line.701"></a>
-<span class="sourceLineNo">702</span>  @Override<a name="line.702"></a>
-<span class="sourceLineNo">703</span>  protected boolean canUpdateTableDescriptor() {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    return true;<a name="line.704"></a>
-<span class="sourceLineNo">705</span>  }<a name="line.705"></a>
-<span class="sourceLineNo">706</span><a name="line.706"></a>
-<span class="sourceLineNo">707</span>  @Override<a name="line.707"></a>
-<span class="sourceLineNo">708</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    return new MasterRpcServices(this);<a name="line.709"></a>
-<span class="sourceLineNo">710</span>  }<a name="line.710"></a>
-<span class="sourceLineNo">711</span><a name="line.711"></a>
-<span class="sourceLineNo">712</span>  @Override<a name="line.712"></a>
-<span class="sourceLineNo">713</span>  protected void configureInfoServer() {<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    infoServer.addServlet("master-status", "/master-status", MasterStatusServlet.class);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    infoServer.setAttribute(MASTER, this);<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.716"></a>
-<span class="sourceLineNo">717</span>      super.configureInfoServer();<a name="line.717"></a>
-<span class="sourceLineNo">718</span>    }<a name="line.718"></a>
-<span class="sourceLineNo">719</span>  }<a name="line.719"></a>
-<span class="sourceLineNo">720</span><a name="line.720"></a>
-<span class="sourceLineNo">721</span>  @Override<a name="line.721"></a>
-<span class="sourceLineNo">722</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    return MasterDumpServlet.class;<a name="line.723"></a>
-<span class="sourceLineNo">724</span>  }<a name="line.724"></a>
-<span class="sourceLineNo">725</span><a name="line.725"></a>
-<span class="sourceLineNo">726</span>  @Override<a name="line.726"></a>
-<span class="sourceLineNo">727</span>  public MetricsMaster getMasterMetrics() {<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    return metricsMaster;<a name="line.728"></a>
-<span class="sourceLineNo">729</span>  }<a name="line.729"></a>
-<span class="sourceLineNo">730</span><a name="line.730"></a>
-<span class="sourceLineNo">731</span>  /**<a name="line.731"></a>
-<span class="sourceLineNo">732</span>   * &lt;p&gt;<a name="line.732"></a>
-<span class="sourceLineNo">733</span>   * Initialize all ZK based system trackers. But do not include {@link RegionServerTracker}, it<a name="line.733"></a>
-<span class="sourceLineNo">734</span>   * should have already been initialized along with {@link ServerManager}.<a name="line.734"></a>
-<span class="sourceLineNo">735</span>   * &lt;/p&gt;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>   * &lt;p&gt;<a name="line.736"></a>
-<span class="sourceLineNo">737</span>   * Will be overridden in tests.<a name="line.737"></a>
-<span class="sourceLineNo">738</span>   * &lt;/p&gt;<a name="line.738"></a>
-<span class="sourceLineNo">739</span>   */<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  @VisibleForTesting<a name="line.740"></a>
-<span class="sourceLineNo">741</span>  protected void initializeZKBasedSystemTrackers()<a name="line.741"></a>
-<span class="sourceLineNo">742</span>      throws IOException, InterruptedException, KeeperException, ReplicationException {<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    this.balancer = LoadBalancerFactory.getLoadBalancer(conf);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>    this.normalizer = RegionNormalizerFactory.getRegionNormalizer(conf);<a name="line.744"></a>
-<span class="sourceLineNo">745</span>    this.normalizer.setMasterServices(this);<a name="line.745"></a>
-<span class="sourceLineNo">746</span>    this.normalizer.setMasterRpcServices((MasterRpcServices)rpcServices);<a name="line.746"></a>
-<span class="sourceLineNo">747</span>    this.loadBalancerTracker = new LoadBalancerTracker(zooKeeper, this);<a name="line.747"></a>
-<span class="sourceLineNo">748</span>    this.loadBalancerTracker.start();<a name="line.748"></a>
-<span class="sourceLineNo">749</span><a name="line.749"></a>
-<span class="sourceLineNo">750</span>    this.regionNormalizerTracker = new RegionNormalizerTracker(zooKeeper, this);<a name="line.750"></a>
-<span class="sourceLineNo">751</span>    this.regionNormalizerTracker.start();<a name="line.751"></a>
-<span class="sourceLineNo">752</span><a name="line.752"></a>
-<span class="sourceLineNo">753</span>    this.splitOrMergeTracker = new SplitOrMergeTracker(zooKeeper, conf, this);<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    this.splitOrMergeTracker.start();<a name="line.754"></a>
-<span class="sourceLineNo">755</span><a name="line.755"></a>
-<span class="sourceLineNo">756</span>    this.replicationPeerManager = ReplicationPeerManager.create(zooKeeper, conf);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    this.syncReplicationReplayWALManager = new SyncReplicationReplayWALManager(this);<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>    this.drainingServerTracker = new DrainingServerTracker(zooKeeper, this, this.serverManager);<a name="line.759"></a>
-<span class="sourceLineNo">760</span>    this.drainingServerTracker.start();<a name="line.760"></a>
-<span class="sourceLineNo">761</span><a name="line.761"></a>
-<span class="sourceLineNo">762</span>    this.maintenanceModeTracker = new MasterMaintenanceModeTracker(zooKeeper);<a name="line.762"></a>
-<span class="sourceLineNo">763</span>    this.maintenanceModeTracker.start();<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span>    String clientQuorumServers = conf.get(HConstants.CLIENT_ZOOKEEPER_QUORUM);<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    boolean clientZkObserverMode = conf.getBoolean(HConstants.CLIENT_ZOOKEEPER_OBSERVER_MODE,<a name="line.766"></a>
-<span class="sourceLineNo">767</span>      HConstants.DEFAULT_CLIENT_ZOOKEEPER_OBSERVER_MODE);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    if (clientQuorumServers != null &amp;&amp; !clientZkObserverMode) {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>      // we need to take care of the ZK information synchronization<a name="line.769"></a>
-<span class="sourceLineNo">770</span>      // if given client ZK are not observer nodes<a name="line.770"></a>
-<span class="sourceLineNo">771</span>      ZKWatcher clientZkWatcher = new ZKWatcher(conf,<a name="line.771"></a>
-<span class="sourceLineNo">772</span>          getProcessName() + ":" + rpcServices.getSocketAddress().getPort() + "-clientZK", this,<a name="line.772"></a>
-<span class="sourceLineNo">773</span>          false, true);<a name="line.773"></a>
-<span class="sourceLineNo">774</span>      this.metaLocationSyncer = new MetaLocationSyncer(zooKeeper, clientZkWatcher, this);<a name="line.774"></a>
-<span class="sourceLineNo">775</span>      this.metaLocationSyncer.start();<a name="line.775"></a>
-<span class="sourceLineNo">776</span>      this.masterAddressSyncer = new MasterAddressSyncer(zooKeeper, clientZkWatcher, this);<a name="line.776"></a>
-<span class="sourceLineNo">777</span>      this.masterAddressSyncer.start();<a name="line.777"></a>
-<span class="sourceLineNo">778</span>      // set cluster id is a one-go effort<a name="line.778"></a>
-<span class="sourceLineNo">779</span>      ZKClusterId.setClusterId(clientZkWatcher, fileSystemManager.getClusterId());<a name="line.779"></a>
-<span class="sourceLineNo">780</span>    }<a name="line.780"></a>
-<span class="sourceLineNo">781</span><a name="line.781"></a>
-<span class="sourceLineNo">782</span>    // Set the cluster as up.  If new RSs, they'll be waiting on this before<a name="line.782"></a>
-<span class="sourceLineNo">783</span>    // going ahead with their startup.<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    boolean wasUp = this.clusterStatusTracker.isClusterUp();<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    if (!wasUp) this.clusterStatusTracker.setClusterUp();<a name="line.785"></a>
-<span class="sourceLineNo">786</span><a name="line.786"></a>
-<span class="sourceLineNo">787</span>    LOG.info("Active/primary master=" + this.serverName +<a name="line.787"></a>
-<span class="sourceLineNo">788</span>        ", sessionid=0x" +<a name="line.788"></a>
-<span class="sourceLineNo">789</span>        Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()) +<a name="line.789"></a>
-<span class="sourceLineNo">790</span>        ", setting cluster-up flag (Was=" + wasUp + ")");<a name="line.790"></a>
-<span class="sourceLineNo">791</span><a name="line.791"></a>
-<span class="sourceLineNo">792</span>    // create/initialize the snapshot manager and other procedure managers<a name="line.792"></a>
-<span class="sourceLineNo">793</span>    this.snapshotManager = new SnapshotManager();<a name="line.793"></a>
-<span class="sourceLineNo">794</span>    this.mpmHost = new MasterProcedureManagerHost();<a name="line.794"></a>
-<span class="sourceLineNo">795</span>    this.mpmHost.register(this.snapshotManager);<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    this.mpmHost.register(new MasterFlushTableProcedureManager());<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    this.mpmHost.loadProcedures(conf);<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    this.mpmHost.initialize(this, this.metricsMaster);<a name="line.798"></a>
-<span class="sourceLineNo">799</span>  }<a name="line.799"></a>
-<span class="sourceLineNo">800</span><a name="line.800"></a>
-<span class="sourceLineNo">801</span>  /**<a name="line.801"></a>
-<span class="sourceLineNo">802</span>   * Finish initialization of HMaster after becoming the primary master.<a name="line.802"></a>
-<span class="sourceLineNo">803</span>   * &lt;p/&gt;<a name="line.803"></a>
-<span class="sourceLineNo">804</span>   * The startup order is a bit complicated but very important, do not change it unless you know<a name="line.804"></a>
-<span class="sourceLineNo">805</span>   * what you are doing.<a name="line.805"></a>
-<span class="sourceLineNo">806</span>   * &lt;ol&gt;<a name="line.806"></a>
-<span class="sourceLineNo">807</span>   * &lt;li&gt;Initialize file system based components - file system manager, wal manager, table<a name="line.807"></a>
-<span class="sourceLineNo">808</span>   * descriptors, etc&lt;/li&gt;<a name="line.808"></a>
-<span class="sourceLineNo">809</span>   * &lt;li&gt;Publish cluster id&lt;/li&gt;<a name="line.809"></a>
-<span class="sourceLineNo">810</span>   * &lt;li&gt;Here comes the most complicated part - initialize server manager, assignment manager and<a name="line.810"></a>
-<span class="sourceLineNo">811</span>   * region server tracker<a name="line.811"></a>
-<span class="sourceLineNo">812</span>   * &lt;ol type='i'&gt;<a name="line.812"></a>
-<span class="sourceLineNo">813</span>   * &lt;li&gt;Create server manager&lt;/li&gt;<a name="line.813"></a>
-<span class="sourceLineNo">814</span>   * &lt;li&gt;Create procedure executor, load the procedures, but do not start workers. We will start it<a name="line.814"></a>
-<span class="sourceLineNo">815</span>   * later after we finish scheduling SCPs to avoid scheduling duplicated SCPs for the same<a name="line.815"></a>
-<span class="sourceLineNo">816</span>   * server&lt;/li&gt;<a name="line.816"></a>
-<span class="sourceLineNo">817</span>   * &lt;li&gt;Create assignment manager and start it, load the meta region state, but do not load data<a name="line.817"></a>
-<span class="sourceLineNo">818</span>   * from meta region&lt;/li&gt;<a name="line.818"></a>
-<span class="sourceLineNo">819</span>   * &lt;li&gt;Start region server tracker, construct the online servers set and find out dead servers and<a name="line.819"></a>
-<span class="sourceLineNo">820</span>   * schedule SCP for them. The online servers will be constructed by scanning zk, and we will also<a name="line.820"></a>
-<span class="sourceLineNo">821</span>   * scan the wal directory to find out possible live region servers, and the differences between<a name="line.821"></a>
-<span class="sourceLineNo">822</span>   * these two sets are the dead servers&lt;/li&gt;<a name="line.822"></a>
-<span class="sourceLineNo">823</span>   * &lt;/ol&gt;<a name="line.823"></a>
-<span class="sourceLineNo">824</span>   * &lt;/li&gt;<a name="line.824"></a>
-<span class="sourceLineNo">825</span>   * &lt;li&gt;If this is a new deploy, schedule a InitMetaProcedure to initialize meta&lt;/li&gt;<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   * &lt;li&gt;Start necessary service threads - balancer, catalog janior, executor services, and also the<a name="line.826"></a>
-<span class="sourceLineNo">827</span>   * procedure executor, etc. Notice that the balancer must be created first as assignment manager<a name="line.827"></a>
-<span class="sourceLineNo">828</span>   * may use it when assigning regions.&lt;/li&gt;<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * &lt;li&gt;Wait for meta to be initialized if necesssary, start table state manager.&lt;/li&gt;<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   * &lt;li&gt;Wait for enough region servers to check-in&lt;/li&gt;<a name="line.830"></a>
-<span class="sourceLineNo">831</span>   * &lt;li&gt;Let assignment manager load data from meta and construct region states&lt;/li&gt;<a name="line.831"></a>
-<span class="sourceLineNo">832</span>   * &lt;li&gt;Start all other things such as chore services, etc&lt;/li&gt;<a name="line.832"></a>
-<span class="sourceLineNo">833</span>   * &lt;/ol&gt;<a name="line.833"></a>
-<span class="sourceLineNo">834</span>   * &lt;p/&gt;<a name="line.834"></a>
-<span class="sourceLineNo">835</span>   * Notice that now we will not schedule a special procedure to make meta online(unless the first<a name="line.835"></a>
-<span class="sourceLineNo">836</span>   * time where meta has not been created yet), we will rely on SCP to bring meta online.<a name="line.836"></a>
-<span class="sourceLineNo">837</span>   */<a name="line.837"></a>
-<span class="sourceLineNo">838</span>  private void finishActiveMasterInitialization(MonitoredTask status) throws IOException,<a name="line.838"></a>
-<span class="sourceLineNo">839</span>          InterruptedException, KeeperException, ReplicationException {<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    Thread zombieDetector = new Thread(new InitializationMonitor(this),<a name="line.840"></a>
-<span class="sourceLineNo">841</span>        "ActiveMasterInitializationMonitor-" + System.currentTimeMillis());<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    zombieDetector.setDaemon(true);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    zombieDetector.start();<a name="line.843"></a>
-<span class="sourceLineNo">844</span><a name="line.844"></a>
-<span class="sourceLineNo">845</span>    /*<a name="line.845"></a>
-<span class="sourceLineNo">846</span>     * We are active master now... go initialize components we need to run.<a name="line.846"></a>
-<span class="sourceLineNo">847</span>     */<a name="line.847"></a>
-<span class="sourceLineNo">848</span>    status.setStatus("Initializing Master file system");<a name="line.848"></a>
-<span class="sourceLineNo">849</span><a name="line.849"></a>
-<span class="sourceLineNo">850</span>    this.masterActiveTime = System.currentTimeMillis();<a name="line.850"></a>
-<span class="sourceLineNo">851</span>    // TODO: Do this using Dependency Injection, using PicoContainer, Guice or Spring.<a name="line.851"></a>
-<span class="sourceLineNo">852</span>    // Initialize the chunkCreator<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    initializeMemStoreChunkCreator();<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    this.fileSystemManager = new MasterFileSystem(conf);<a name="line.854"></a>
-<span class="sourceLineNo">855</span>    this.walManager = new MasterWalManager(this);<a name="line.855"></a>
-<span class="sourceLineNo">856</span><a name="line.856"></a>
-<span class="sourceLineNo">857</span>    // enable table descriptors cache<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    this.tableDescriptors.setCacheOn();<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>    // warm-up HTDs cache on master initialization<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    if (preLoadTableDescriptors) {<a name="line.861"></a>
-<span class="sourceLineNo">862</span>      status.setStatus("Pre-loading table descriptors");<a name="line.862"></a>
-<span class="sourceLineNo">863</span>      this.tableDescriptors.getAll();<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    }<a name="line.864"></a>
-<span class="sourceLineNo">865</span><a name="line.865"></a>
-<span class="sourceLineNo">866</span>    // Publish cluster ID; set it in Master too. The superclass RegionServer does this later but<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    // only after it has checked in with the Master. At least a few tests ask Master for clusterId<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    // before it has called its run method and before RegionServer has done the reportForDuty.<a name="line.868"></a>
-<span class="sourceLineNo">869</span>    ClusterId clusterId = fileSystemManager.getClusterId();<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    status.setStatus("Publishing Cluster ID " + clusterId + " in ZooKeeper");<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    ZKClusterId.setClusterId(this.zooKeeper, fileSystemManager.getClusterId());<a name="line.871"></a>
-<span class="sourceLineNo">872</span>    this.clusterId = clusterId.toString();<a name="line.872"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.exceptions.MergeRegionException;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.master.MasterRpcServices.BalanceSwitchMode;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.master.assignment.AssignmentManager;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.master.assignment.MergeTableRegionsProcedure;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.master.assignment.RegionStates;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.master.balancer.BalancerChore;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.master.balancer.ClusterStatusChore;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.master.cleaner.CleanerChore;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.master.cleaner.HFileCleaner;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.master.cleaner.LogCleaner;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.master.cleaner.ReplicationBarrierCleaner;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.master.locking.LockManager;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan.PlanType;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerFactory;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.master.procedure.CreateTableProcedure;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.master.procedure.DeleteNamespaceProcedure;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.master.procedure.DisableTableProcedure;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.master.procedure.EnableTableProcedure;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.master.procedure.InitMetaProcedure;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.had

<TRUNCATED>

[12/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
index a5d418c..95f2a65 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
@@ -96,3682 +96,3680 @@
 <span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.88"></a>
 <span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.89"></a>
 <span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.exceptions.MergeRegionException;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.master.MasterRpcServices.BalanceSwitchMode;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.master.assignment.AssignmentManager;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.master.assignment.MergeTableRegionsProcedure;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.master.assignment.RegionStates;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.master.balancer.BalancerChore;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.master.balancer.ClusterStatusChore;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.master.cleaner.CleanerChore;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.master.cleaner.HFileCleaner;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.master.cleaner.LogCleaner;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.master.cleaner.ReplicationBarrierCleaner;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.master.locking.LockManager;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan.PlanType;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerFactory;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.master.procedure.CreateTableProcedure;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.master.procedure.DeleteNamespaceProcedure;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.master.procedure.DisableTableProcedure;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.master.procedure.EnableTableProcedure;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.master.procedure.InitMetaProcedure;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.master.procedure.ModifyTableProcedure;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.master.procedure.ProcedurePrepareLatch;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.master.procedure.ServerCrashProcedure;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.master.procedure.TruncateTableProcedure;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.master.replication.AbstractPeerProcedure;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.master.replication.AddPeerProcedure;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.master.replication.DisablePeerProcedure;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.master.replication.EnablePeerProcedure;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.master.replication.RemovePeerProcedure;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.master.replication.ReplicationPeerManager;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.master.replication.SyncReplicationReplayWALManager;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.master.replication.TransitPeerSyncReplicationStateProcedure;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.master.replication.UpdatePeerConfigProcedure;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.master.snapshot.SnapshotManager;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.master.zksyncer.MasterAddressSyncer;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.master.zksyncer.MetaLocationSyncer;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.mob.MobConstants;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.monitoring.MemoryBoundedLogMessageBuffer;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.monitoring.MonitoredTask;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.procedure.MasterProcedureManagerHost;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.procedure.flush.MasterFlushTableProcedureManager;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.procedure2.LockedResource;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.procedure2.ProcedureEvent;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher.RemoteProcedure;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.quotas.MasterQuotaManager;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.quotas.MasterSpaceQuotaObserver;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.quotas.QuotaObserverChore;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.quotas.QuotaUtil;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.quotas.SnapshotQuotaObserverChore;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshotNotifier;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshotNotifierFactory;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.regionserver.DefaultStoreEngine;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.regionserver.HStore;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.regionserver.RegionSplitPolicy;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.regionserver.compactions.ExploringCompactionPolicy;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.regionserver.compactions.FIFOCompactionPolicy;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.replication.ReplicationLoadSource;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.replication.ReplicationUtils;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.replication.SyncReplicationState;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.replication.master.ReplicationHFileCleaner;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.replication.master.ReplicationLogCleaner;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.replication.master.ReplicationPeerConfigUpgrader;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.trace.TraceUtil;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>import org.apache.hadoop.hbase.util.Addressing;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>import org.apache.hadoop.hbase.util.CompressionTest;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>import org.apache.hadoop.hbase.util.EncryptionTest;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>import org.apache.hadoop.hbase.util.HFileArchiveUtil;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>import org.apache.hadoop.hbase.util.HasThread;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>import org.apache.hadoop.hbase.util.IdLock;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>import org.apache.hadoop.hbase.util.ModifyRegionUtils;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>import org.apache.hadoop.hbase.util.VersionInfo;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>import org.apache.hadoop.hbase.zookeeper.LoadBalancerTracker;<a name="line.199"></a>
-<span class="sourceLineNo">200</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.200"></a>
-<span class="sourceLineNo">201</span>import org.apache.hadoop.hbase.zookeeper.MasterMaintenanceModeTracker;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>import org.apache.hadoop.hbase.zookeeper.RegionNormalizerTracker;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>import org.apache.hadoop.hbase.zookeeper.ZKClusterId;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>import org.apache.hadoop.hbase.zookeeper.ZKWatcher;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>import org.apache.hadoop.hbase.zookeeper.ZNodePaths;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.207"></a>
-<span class="sourceLineNo">208</span>import org.apache.zookeeper.KeeperException;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>import org.eclipse.jetty.server.Server;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>import org.eclipse.jetty.server.ServerConnector;<a name="line.210"></a>
-<span class="sourceLineNo">211</span>import org.eclipse.jetty.servlet.ServletHolder;<a name="line.211"></a>
-<span class="sourceLineNo">212</span>import org.eclipse.jetty.webapp.WebAppContext;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>import org.slf4j.Logger;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>import org.slf4j.LoggerFactory;<a name="line.214"></a>
-<span class="sourceLineNo">215</span><a name="line.215"></a>
-<span class="sourceLineNo">216</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.216"></a>
-<span class="sourceLineNo">217</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Quotas;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceViolationPolicy;<a name="line.223"></a>
-<span class="sourceLineNo">224</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription;<a name="line.224"></a>
-<span class="sourceLineNo">225</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos;<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>/**<a name="line.227"></a>
-<span class="sourceLineNo">228</span> * HMaster is the "master server" for HBase. An HBase cluster has one active<a name="line.228"></a>
-<span class="sourceLineNo">229</span> * master.  If many masters are started, all compete.  Whichever wins goes on to<a name="line.229"></a>
-<span class="sourceLineNo">230</span> * run the cluster.  All others park themselves in their constructor until<a name="line.230"></a>
-<span class="sourceLineNo">231</span> * master or cluster shutdown or until the active master loses its lease in<a name="line.231"></a>
-<span class="sourceLineNo">232</span> * zookeeper.  Thereafter, all running master jostle to take over master role.<a name="line.232"></a>
-<span class="sourceLineNo">233</span> *<a name="line.233"></a>
-<span class="sourceLineNo">234</span> * &lt;p&gt;The Master can be asked shutdown the cluster. See {@link #shutdown()}.  In<a name="line.234"></a>
-<span class="sourceLineNo">235</span> * this case it will tell all regionservers to go down and then wait on them<a name="line.235"></a>
-<span class="sourceLineNo">236</span> * all reporting in that they are down.  This master will then shut itself down.<a name="line.236"></a>
-<span class="sourceLineNo">237</span> *<a name="line.237"></a>
-<span class="sourceLineNo">238</span> * &lt;p&gt;You can also shutdown just this master.  Call {@link #stopMaster()}.<a name="line.238"></a>
-<span class="sourceLineNo">239</span> *<a name="line.239"></a>
-<span class="sourceLineNo">240</span> * @see org.apache.zookeeper.Watcher<a name="line.240"></a>
-<span class="sourceLineNo">241</span> */<a name="line.241"></a>
-<span class="sourceLineNo">242</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.242"></a>
-<span class="sourceLineNo">243</span>@SuppressWarnings("deprecation")<a name="line.243"></a>
-<span class="sourceLineNo">244</span>public class HMaster extends HRegionServer implements MasterServices {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  private static Logger LOG = LoggerFactory.getLogger(HMaster.class);<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>  /**<a name="line.247"></a>
-<span class="sourceLineNo">248</span>   * Protection against zombie master. Started once Master accepts active responsibility and<a name="line.248"></a>
-<span class="sourceLineNo">249</span>   * starts taking over responsibilities. Allows a finite time window before giving up ownership.<a name="line.249"></a>
-<span class="sourceLineNo">250</span>   */<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  private static class InitializationMonitor extends HasThread {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    /** The amount of time in milliseconds to sleep before checking initialization status. */<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    public static final String TIMEOUT_KEY = "hbase.master.initializationmonitor.timeout";<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    public static final long TIMEOUT_DEFAULT = TimeUnit.MILLISECONDS.convert(15, TimeUnit.MINUTES);<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>    /**<a name="line.256"></a>
-<span class="sourceLineNo">257</span>     * When timeout expired and initialization has not complete, call {@link System#exit(int)} when<a name="line.257"></a>
-<span class="sourceLineNo">258</span>     * true, do nothing otherwise.<a name="line.258"></a>
-<span class="sourceLineNo">259</span>     */<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    public static final String HALT_KEY = "hbase.master.initializationmonitor.haltontimeout";<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    public static final boolean HALT_DEFAULT = false;<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>    private final HMaster master;<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    private final long timeout;<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    private final boolean haltOnTimeout;<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>    /** Creates a Thread that monitors the {@link #isInitialized()} state. */<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    InitializationMonitor(HMaster master) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      super("MasterInitializationMonitor");<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      this.master = master;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      this.timeout = master.getConfiguration().getLong(TIMEOUT_KEY, TIMEOUT_DEFAULT);<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      this.haltOnTimeout = master.getConfiguration().getBoolean(HALT_KEY, HALT_DEFAULT);<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      this.setDaemon(true);<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>    @Override<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    public void run() {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      try {<a name="line.278"></a>
-<span class="sourceLineNo">279</span>        while (!master.isStopped() &amp;&amp; master.isActiveMaster()) {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>          Thread.sleep(timeout);<a name="line.280"></a>
-<span class="sourceLineNo">281</span>          if (master.isInitialized()) {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>            LOG.debug("Initialization completed within allotted tolerance. Monitor exiting.");<a name="line.282"></a>
-<span class="sourceLineNo">283</span>          } else {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>            LOG.error("Master failed to complete initialization after " + timeout + "ms. Please"<a name="line.284"></a>
-<span class="sourceLineNo">285</span>                + " consider submitting a bug report including a thread dump of this process.");<a name="line.285"></a>
-<span class="sourceLineNo">286</span>            if (haltOnTimeout) {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>              LOG.error("Zombie Master exiting. Thread dump to stdout");<a name="line.287"></a>
-<span class="sourceLineNo">288</span>              Threads.printThreadInfo(System.out, "Zombie HMaster");<a name="line.288"></a>
-<span class="sourceLineNo">289</span>              System.exit(-1);<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>      } catch (InterruptedException ie) {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>        LOG.trace("InitMonitor thread interrupted. Existing.");<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      }<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>  // MASTER is name of the webapp and the attribute name used stuffing this<a name="line.299"></a>
-<span class="sourceLineNo">300</span>  //instance into web context.<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  public static final String MASTER = "master";<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>  // Manager and zk listener for master election<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  private final ActiveMasterManager activeMasterManager;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  // Region server tracker<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  private RegionServerTracker regionServerTracker;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>  // Draining region server tracker<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  private DrainingServerTracker drainingServerTracker;<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  // Tracker for load balancer state<a name="line.309"></a>
-<span class="sourceLineNo">310</span>  LoadBalancerTracker loadBalancerTracker;<a name="line.310"></a>
-<span class="sourceLineNo">311</span>  // Tracker for meta location, if any client ZK quorum specified<a name="line.311"></a>
-<span class="sourceLineNo">312</span>  MetaLocationSyncer metaLocationSyncer;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  // Tracker for active master location, if any client ZK quorum specified<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  MasterAddressSyncer masterAddressSyncer;<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>  // Tracker for split and merge state<a name="line.316"></a>
-<span class="sourceLineNo">317</span>  private SplitOrMergeTracker splitOrMergeTracker;<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span>  // Tracker for region normalizer state<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  private RegionNormalizerTracker regionNormalizerTracker;<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span>  //Tracker for master maintenance mode setting<a name="line.322"></a>
-<span class="sourceLineNo">323</span>  private MasterMaintenanceModeTracker maintenanceModeTracker;<a name="line.323"></a>
-<span class="sourceLineNo">324</span><a name="line.324"></a>
-<span class="sourceLineNo">325</span>  private ClusterSchemaService clusterSchemaService;<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public static final String HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS =<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    "hbase.master.wait.on.service.seconds";<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  public static final int DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS = 5 * 60;<a name="line.329"></a>
-<span class="sourceLineNo">330</span><a name="line.330"></a>
-<span class="sourceLineNo">331</span>  // Metrics for the HMaster<a name="line.331"></a>
-<span class="sourceLineNo">332</span>  final MetricsMaster metricsMaster;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>  // file system manager for the master FS operations<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  private MasterFileSystem fileSystemManager;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  private MasterWalManager walManager;<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  // server manager to deal with region server info<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  private volatile ServerManager serverManager;<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>  // manager of assignment nodes in zookeeper<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  private AssignmentManager assignmentManager;<a name="line.341"></a>
-<span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>  // manager of replication<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  private ReplicationPeerManager replicationPeerManager;<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  private SyncReplicationReplayWALManager syncReplicationReplayWALManager;<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span>  // buffer for "fatal error" notices from region servers<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  // in the cluster. This is only used for assisting<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  // operations/debugging.<a name="line.350"></a>
-<span class="sourceLineNo">351</span>  MemoryBoundedLogMessageBuffer rsFatals;<a name="line.351"></a>
-<span class="sourceLineNo">352</span><a name="line.352"></a>
-<span class="sourceLineNo">353</span>  // flag set after we become the active master (used for testing)<a name="line.353"></a>
-<span class="sourceLineNo">354</span>  private volatile boolean activeMaster = false;<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span>  // flag set after we complete initialization once active<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  private final ProcedureEvent&lt;?&gt; initialized = new ProcedureEvent&lt;&gt;("master initialized");<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>  // flag set after master services are started,<a name="line.359"></a>
-<span class="sourceLineNo">360</span>  // initialization may have not completed yet.<a name="line.360"></a>
-<span class="sourceLineNo">361</span>  volatile boolean serviceStarted = false;<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span>  // Maximum time we should run balancer for<a name="line.363"></a>
-<span class="sourceLineNo">364</span>  private final int maxBlancingTime;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  // Maximum percent of regions in transition when balancing<a name="line.365"></a>
-<span class="sourceLineNo">366</span>  private final double maxRitPercent;<a name="line.366"></a>
-<span class="sourceLineNo">367</span><a name="line.367"></a>
-<span class="sourceLineNo">368</span>  private final LockManager lockManager = new LockManager(this);<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>  private LoadBalancer balancer;<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  private RegionNormalizer normalizer;<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  private BalancerChore balancerChore;<a name="line.372"></a>
-<span class="sourceLineNo">373</span>  private RegionNormalizerChore normalizerChore;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  private ClusterStatusChore clusterStatusChore;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  private ClusterStatusPublisher clusterStatusPublisherChore = null;<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>  CatalogJanitor catalogJanitorChore;<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  private LogCleaner logCleaner;<a name="line.378"></a>
-<span class="sourceLineNo">379</span>  private HFileCleaner hfileCleaner;<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  private ReplicationBarrierCleaner replicationBarrierCleaner;<a name="line.380"></a>
-<span class="sourceLineNo">381</span>  private ExpiredMobFileCleanerChore expiredMobFileCleanerChore;<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  private MobCompactionChore mobCompactChore;<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  private MasterMobCompactionThread mobCompactThread;<a name="line.383"></a>
-<span class="sourceLineNo">384</span>  // used to synchronize the mobCompactionStates<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  private final IdLock mobCompactionLock = new IdLock();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  // save the information of mob compactions in tables.<a name="line.386"></a>
-<span class="sourceLineNo">387</span>  // the key is table name, the value is the number of compactions in that table.<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  private Map&lt;TableName, AtomicInteger&gt; mobCompactionStates = Maps.newConcurrentMap();<a name="line.388"></a>
-<span class="sourceLineNo">389</span><a name="line.389"></a>
-<span class="sourceLineNo">390</span>  MasterCoprocessorHost cpHost;<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span>  private final boolean preLoadTableDescriptors;<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>  // Time stamps for when a hmaster became active<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  private long masterActiveTime;<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span>  // Time stamp for when HMaster finishes becoming Active Master<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  private long masterFinishedInitializationTime;<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>  //should we check the compression codec type at master side, default true, HBASE-6370<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  private final boolean masterCheckCompression;<a name="line.401"></a>
-<span class="sourceLineNo">402</span><a name="line.402"></a>
-<span class="sourceLineNo">403</span>  //should we check encryption settings at master side, default true<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  private final boolean masterCheckEncryption;<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>  Map&lt;String, Service&gt; coprocessorServiceHandlers = Maps.newHashMap();<a name="line.406"></a>
-<span class="sourceLineNo">407</span><a name="line.407"></a>
-<span class="sourceLineNo">408</span>  // monitor for snapshot of hbase tables<a name="line.408"></a>
-<span class="sourceLineNo">409</span>  SnapshotManager snapshotManager;<a name="line.409"></a>
-<span class="sourceLineNo">410</span>  // monitor for distributed procedures<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  private MasterProcedureManagerHost mpmHost;<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  // it is assigned after 'initialized' guard set to true, so should be volatile<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  private volatile MasterQuotaManager quotaManager;<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  private SpaceQuotaSnapshotNotifier spaceQuotaSnapshotNotifier;<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  private QuotaObserverChore quotaObserverChore;<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  private SnapshotQuotaObserverChore snapshotQuotaChore;<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  private ProcedureExecutor&lt;MasterProcedureEnv&gt; procedureExecutor;<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  private WALProcedureStore procedureStore;<a name="line.420"></a>
-<span class="sourceLineNo">421</span><a name="line.421"></a>
-<span class="sourceLineNo">422</span>  // handle table states<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  private TableStateManager tableStateManager;<a name="line.423"></a>
-<span class="sourceLineNo">424</span><a name="line.424"></a>
-<span class="sourceLineNo">425</span>  private long splitPlanCount;<a name="line.425"></a>
-<span class="sourceLineNo">426</span>  private long mergePlanCount;<a name="line.426"></a>
-<span class="sourceLineNo">427</span><a name="line.427"></a>
-<span class="sourceLineNo">428</span>  /* Handle favored nodes information */<a name="line.428"></a>
-<span class="sourceLineNo">429</span>  private FavoredNodesManager favoredNodesManager;<a name="line.429"></a>
-<span class="sourceLineNo">430</span><a name="line.430"></a>
-<span class="sourceLineNo">431</span>  /** jetty server for master to redirect requests to regionserver infoServer */<a name="line.431"></a>
-<span class="sourceLineNo">432</span>  private Server masterJettyServer;<a name="line.432"></a>
-<span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>  public static class RedirectServlet extends HttpServlet {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    private static final long serialVersionUID = 2894774810058302473L;<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    private final int regionServerInfoPort;<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    private final String regionServerHostname;<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>     * @param infoServer that we're trying to send all requests to<a name="line.440"></a>
-<span class="sourceLineNo">441</span>     * @param hostname may be null. if given, will be used for redirects instead of host from client.<a name="line.441"></a>
-<span class="sourceLineNo">442</span>     */<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    public RedirectServlet(InfoServer infoServer, String hostname) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>       regionServerInfoPort = infoServer.getPort();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>       regionServerHostname = hostname;<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    }<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>    @Override<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    public void doGet(HttpServletRequest request,<a name="line.449"></a>
-<span class="sourceLineNo">450</span>        HttpServletResponse response) throws ServletException, IOException {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      String redirectHost = regionServerHostname;<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      if(redirectHost == null) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        redirectHost = request.getServerName();<a name="line.453"></a>
-<span class="sourceLineNo">454</span>        if(!Addressing.isLocalAddress(InetAddress.getByName(redirectHost))) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>          LOG.warn("Couldn't resolve '" + redirectHost + "' as an address local to this node and '" +<a name="line.455"></a>
-<span class="sourceLineNo">456</span>              MASTER_HOSTNAME_KEY + "' is not set; client will get a HTTP 400 response. If " +<a name="line.456"></a>
-<span class="sourceLineNo">457</span>              "your HBase deployment relies on client accessible names that the region server process " +<a name="line.457"></a>
-<span class="sourceLineNo">458</span>              "can't resolve locally, then you should set the previously mentioned configuration variable " +<a name="line.458"></a>
-<span class="sourceLineNo">459</span>              "to an appropriate hostname.");<a name="line.459"></a>
-<span class="sourceLineNo">460</span>          // no sending client provided input back to the client, so the goal host is just in the logs.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>          response.sendError(400, "Request was to a host that I can't resolve for any of the network interfaces on " +<a name="line.461"></a>
-<span class="sourceLineNo">462</span>              "this node. If this is due to an intermediary such as an HTTP load balancer or other proxy, your HBase " +<a name="line.462"></a>
-<span class="sourceLineNo">463</span>              "administrator can set '" + MASTER_HOSTNAME_KEY + "' to point to the correct hostname.");<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          return;<a name="line.464"></a>
-<span class="sourceLineNo">465</span>        }<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      }<a name="line.466"></a>
-<span class="sourceLineNo">467</span>      // TODO this scheme should come from looking at the scheme registered in the infoserver's http server for the<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      // host and port we're using, but it's buried way too deep to do that ATM.<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      String redirectUrl = request.getScheme() + "://"<a name="line.469"></a>
-<span class="sourceLineNo">470</span>        + redirectHost + ":" + regionServerInfoPort<a name="line.470"></a>
-<span class="sourceLineNo">471</span>        + request.getRequestURI();<a name="line.471"></a>
-<span class="sourceLineNo">472</span>      response.sendRedirect(redirectUrl);<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><a name="line.475"></a>
-<span class="sourceLineNo">476</span>  /**<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * Initializes the HMaster. The steps are as follows:<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * &lt;p&gt;<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   * &lt;ol&gt;<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * &lt;li&gt;Initialize the local HRegionServer<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * &lt;li&gt;Start the ActiveMasterManager.<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   * &lt;/ol&gt;<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   * &lt;p&gt;<a name="line.483"></a>
-<span class="sourceLineNo">484</span>   * Remaining steps of initialization occur in<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   * #finishActiveMasterInitialization(MonitoredTask) after<a name="line.485"></a>
-<span class="sourceLineNo">486</span>   * the master becomes the active one.<a name="line.486"></a>
-<span class="sourceLineNo">487</span>   */<a name="line.487"></a>
-<span class="sourceLineNo">488</span>  public HMaster(final Configuration conf)<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      throws IOException, KeeperException {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    super(conf);<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    TraceUtil.initTracer(conf);<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    try {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      this.rsFatals = new MemoryBoundedLogMessageBuffer(<a name="line.493"></a>
-<span class="sourceLineNo">494</span>          conf.getLong("hbase.master.buffer.for.rs.fatals", 1 * 1024 * 1024));<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      LOG.info("hbase.rootdir=" + getRootDir() +<a name="line.495"></a>
-<span class="sourceLineNo">496</span>          ", hbase.cluster.distributed=" + this.conf.getBoolean(HConstants.CLUSTER_DISTRIBUTED, false));<a name="line.496"></a>
-<span class="sourceLineNo">497</span><a name="line.497"></a>
-<span class="sourceLineNo">498</span>      // Disable usage of meta replicas in the master<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      this.conf.setBoolean(HConstants.USE_META_REPLICAS, false);<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>      decorateMasterConfiguration(this.conf);<a name="line.501"></a>
-<span class="sourceLineNo">502</span><a name="line.502"></a>
-<span class="sourceLineNo">503</span>      // Hack! Maps DFSClient =&gt; Master for logs.  HDFS made this<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      // config param for task trackers, but we can piggyback off of it.<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      if (this.conf.get("mapreduce.task.attempt.id") == null) {<a name="line.505"></a>
-<span class="sourceLineNo">506</span>        this.conf.set("mapreduce.task.attempt.id", "hb_m_" + this.serverName.toString());<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>      // should we check the compression codec type at master side, default true, HBASE-6370<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      this.masterCheckCompression = conf.getBoolean("hbase.master.check.compression", true);<a name="line.510"></a>
-<span class="sourceLineNo">511</span><a name="line.511"></a>
-<span class="sourceLineNo">512</span>      // should we check encryption settings at master side, default true<a name="line.512"></a>
-<span class="sourceLineNo">513</span>      this.masterCheckEncryption = conf.getBoolean("hbase.master.check.encryption", true);<a name="line.513"></a>
-<span class="sourceLineNo">514</span><a name="line.514"></a>
-<span class="sourceLineNo">515</span>      this.metricsMaster = new MetricsMaster(new MetricsMasterWrapperImpl(this));<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>      // preload table descriptor at startup<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      this.preLoadTableDescriptors = conf.getBoolean("hbase.master.preload.tabledescriptors", true);<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>      this.maxBlancingTime = getMaxBalancingTime();<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      this.maxRitPercent = conf.getDouble(HConstants.HBASE_MASTER_BALANCER_MAX_RIT_PERCENT,<a name="line.521"></a>
-<span class="sourceLineNo">522</span>          HConstants.DEFAULT_HBASE_MASTER_BALANCER_MAX_RIT_PERCENT);<a name="line.522"></a>
-<span class="sourceLineNo">523</span><a name="line.523"></a>
-<span class="sourceLineNo">524</span>      // Do we publish the status?<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>      boolean shouldPublish = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      Class&lt;? extends ClusterStatusPublisher.Publisher&gt; publisherClass =<a name="line.528"></a>
-<span class="sourceLineNo">529</span>          conf.getClass(ClusterStatusPublisher.STATUS_PUBLISHER_CLASS,<a name="line.529"></a>
-<span class="sourceLineNo">530</span>              ClusterStatusPublisher.DEFAULT_STATUS_PUBLISHER_CLASS,<a name="line.530"></a>
-<span class="sourceLineNo">531</span>              ClusterStatusPublisher.Publisher.class);<a name="line.531"></a>
-<span class="sourceLineNo">532</span><a name="line.532"></a>
-<span class="sourceLineNo">533</span>      if (shouldPublish) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>        if (publisherClass == null) {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.535"></a>
-<span class="sourceLineNo">536</span>              ClusterStatusPublisher.DEFAULT_STATUS_PUBLISHER_CLASS +<a name="line.536"></a>
-<span class="sourceLineNo">537</span>              " is not set - not publishing status");<a name="line.537"></a>
-<span class="sourceLineNo">538</span>        } else {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>          clusterStatusPublisherChore = new ClusterStatusPublisher(this, conf, publisherClass);<a name="line.539"></a>
-<span class="sourceLineNo">540</span>          getChoreService().scheduleChore(clusterStatusPublisherChore);<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>      // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>        this.activeMasterManager = new ActiveMasterManager(zooKeeper, this.serverName, this);<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      } else {<a name="line.547"></a>
-<span class="sourceLineNo">548</span>        this.activeMasterManager = null;<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      }<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    } catch (Throwable t) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      // Make sure we log the exception. HMaster is often started via reflection and the<a name="line.551"></a>
-<span class="sourceLineNo">552</span>      // cause of failed startup is lost.<a name="line.552"></a>
-<span class="sourceLineNo">553</span>      LOG.error("Failed construction of Master", t);<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      throw t;<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">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>  @Override<a name="line.558"></a>
-<span class="sourceLineNo">559</span>  protected String getUseThisHostnameInstead(Configuration conf) {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    return conf.get(MASTER_HOSTNAME_KEY);<a name="line.560"></a>
-<span class="sourceLineNo">561</span>  }<a name="line.561"></a>
-<span class="sourceLineNo">562</span><a name="line.562"></a>
-<span class="sourceLineNo">563</span>  // Main run loop. Calls through to the regionserver run loop AFTER becoming active Master; will<a name="line.563"></a>
-<span class="sourceLineNo">564</span>  // block in here until then.<a name="line.564"></a>
-<span class="sourceLineNo">565</span>  @Override<a name="line.565"></a>
-<span class="sourceLineNo">566</span>  public void run() {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    try {<a name="line.567"></a>
-<span class="sourceLineNo">568</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>        Threads.setDaemonThreadRunning(new Thread(() -&gt; {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>          try {<a name="line.570"></a>
-<span class="sourceLineNo">571</span>            int infoPort = putUpJettyServer();<a name="line.571"></a>
-<span class="sourceLineNo">572</span>            startActiveMasterManager(infoPort);<a name="line.572"></a>
-<span class="sourceLineNo">573</span>          } catch (Throwable t) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>            // Make sure we log the exception.<a name="line.574"></a>
-<span class="sourceLineNo">575</span>            String error = "Failed to become Active Master";<a name="line.575"></a>
-<span class="sourceLineNo">576</span>            LOG.error(error, t);<a name="line.576"></a>
-<span class="sourceLineNo">577</span>            // Abort should have been called already.<a name="line.577"></a>
-<span class="sourceLineNo">578</span>            if (!isAborted()) {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>              abort(error, t);<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">584</span>      // Fall in here even if we have been aborted. Need to run the shutdown services and<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      // the super run call will do this for us.<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      super.run();<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    } finally {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      if (this.clusterSchemaService != null) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>        // If on way out, then we are no longer active master.<a name="line.589"></a>
-<span class="sourceLineNo">590</span>        this.clusterSchemaService.stopAsync();<a name="line.590"></a>
-<span class="sourceLineNo">591</span>        try {<a name="line.591"></a>
-<span class="sourceLineNo">592</span>          this.clusterSchemaService.awaitTerminated(<a name="line.592"></a>
-<span class="sourceLineNo">593</span>              getConfiguration().getInt(HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS,<a name="line.593"></a>
-<span class="sourceLineNo">594</span>              DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS), TimeUnit.SECONDS);<a name="line.594"></a>
-<span class="sourceLineNo">595</span>        } catch (TimeoutException te) {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>          LOG.warn("Failed shutdown of clusterSchemaService", te);<a name="line.596"></a>
-<span class="sourceLineNo">597</span>        }<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      }<a name="line.598"></a>
-<span class="sourceLineNo">599</span>      this.activeMaster = false;<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    }<a name="line.600"></a>
-<span class="sourceLineNo">601</span>  }<a name="line.601"></a>
-<span class="sourceLineNo">602</span><a name="line.602"></a>
-<span class="sourceLineNo">603</span>  // return the actual infoPort, -1 means disable info server.<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  private int putUpJettyServer() throws IOException {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    if (!conf.getBoolean("hbase.master.infoserver.redirect", true)) {<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      return -1;<a name="line.606"></a>
-<span class="sourceLineNo">607</span>    }<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    final int infoPort = conf.getInt("hbase.master.info.port.orig",<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      HConstants.DEFAULT_MASTER_INFOPORT);<a name="line.609"></a>
-<span class="sourceLineNo">610</span>    // -1 is for disabling info server, so no redirecting<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    if (infoPort &lt; 0 || infoServer == null) {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      return -1;<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    }<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    if(infoPort == infoServer.getPort()) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      return infoPort;<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    }<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    final String addr = conf.get("hbase.master.info.bindAddress", "0.0.0.0");<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    if (!Addressing.isLocalAddress(InetAddress.getByName(addr))) {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      String msg =<a name="line.619"></a>
-<span class="sourceLineNo">620</span>          "Failed to start redirecting jetty server. Address " + addr<a name="line.620"></a>
-<span class="sourceLineNo">621</span>              + " does not belong to this host. Correct configuration parameter: "<a name="line.621"></a>
-<span class="sourceLineNo">622</span>              + "hbase.master.info.bindAddress";<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      LOG.error(msg);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      throw new IOException(msg);<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    }<a name="line.625"></a>
-<span class="sourceLineNo">626</span><a name="line.626"></a>
-<span class="sourceLineNo">627</span>    // TODO I'm pretty sure we could just add another binding to the InfoServer run by<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    // the RegionServer and have it run the RedirectServlet instead of standing up<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    // a second entire stack here.<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    masterJettyServer = new Server();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>    final ServerConnector connector = new ServerConnector(masterJettyServer);<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    connector.setHost(addr);<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    connector.setPort(infoPort);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    masterJettyServer.addConnector(connector);<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    masterJettyServer.setStopAtShutdown(true);<a name="line.635"></a>
-<span class="sourceLineNo">636</span><a name="line.636"></a>
-<span class="sourceLineNo">637</span>    final String redirectHostname =<a name="line.637"></a>
-<span class="sourceLineNo">638</span>        StringUtils.isBlank(useThisHostnameInstead) ? null : useThisHostnameInstead;<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span>    final RedirectServlet redirect = new RedirectServlet(infoServer, redirectHostname);<a name="line.640"></a>
-<span class="sourceLineNo">641</span>    final WebAppContext context = new WebAppContext(null, "/", null, null, null, null, WebAppContext.NO_SESSIONS);<a name="line.641"></a>
-<span class="sourceLineNo">642</span>    context.addServlet(new ServletHolder(redirect), "/*");<a name="line.642"></a>
-<span class="sourceLineNo">643</span>    context.setServer(masterJettyServer);<a name="line.643"></a>
-<span class="sourceLineNo">644</span><a name="line.644"></a>
-<span class="sourceLineNo">645</span>    try {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>      masterJettyServer.start();<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    } catch (Exception e) {<a name="line.647"></a>
-<span class="sourceLineNo">648</span>      throw new IOException("Failed to start redirecting jetty server", e);<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    }<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    return connector.getLocalPort();<a name="line.650"></a>
-<span class="sourceLineNo">651</span>  }<a name="line.651"></a>
-<span class="sourceLineNo">652</span><a name="line.652"></a>
-<span class="sourceLineNo">653</span>  @Override<a name="line.653"></a>
-<span class="sourceLineNo">654</span>  protected Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    return builder -&gt; builder.setRegionReplication(conf.getInt(HConstants.META_REPLICAS_NUM, HConstants.DEFAULT_META_REPLICA_NUM));<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
-<span class="sourceLineNo">657</span>  /**<a name="line.657"></a>
-<span class="sourceLineNo">658</span>   * For compatibility, if failed with regionserver credentials, try the master one<a name="line.658"></a>
-<span class="sourceLineNo">659</span>   */<a name="line.659"></a>
-<span class="sourceLineNo">660</span>  @Override<a name="line.660"></a>
-<span class="sourceLineNo">661</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    try {<a name="line.662"></a>
-<span class="sourceLineNo">663</span>      super.login(user, host);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    } catch (IOException ie) {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      user.login("hbase.master.keytab.file",<a name="line.665"></a>
-<span class="sourceLineNo">666</span>        "hbase.master.kerberos.principal", host);<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    }<a name="line.667"></a>
-<span class="sourceLineNo">668</span>  }<a name="line.668"></a>
-<span class="sourceLineNo">669</span><a name="line.669"></a>
-<span class="sourceLineNo">670</span>  /**<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   * If configured to put regions on active master,<a name="line.671"></a>
-<span class="sourceLineNo">672</span>   * wait till a backup master becomes active.<a name="line.672"></a>
-<span class="sourceLineNo">673</span>   * Otherwise, loop till the server is stopped or aborted.<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   */<a name="line.674"></a>
-<span class="sourceLineNo">675</span>  @Override<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  protected void waitForMasterActive(){<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(conf);<a name="line.677"></a>
-<span class="sourceLineNo">678</span>    while (!(tablesOnMaster &amp;&amp; activeMaster) &amp;&amp; !isStopped() &amp;&amp; !isAborted()) {<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      sleeper.sleep();<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    }<a name="line.680"></a>
-<span class="sourceLineNo">681</span>  }<a name="line.681"></a>
-<span class="sourceLineNo">682</span><a name="line.682"></a>
-<span class="sourceLineNo">683</span>  @VisibleForTesting<a name="line.683"></a>
-<span class="sourceLineNo">684</span>  public MasterRpcServices getMasterRpcServices() {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    return (MasterRpcServices)rpcServices;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>  }<a name="line.686"></a>
-<span class="sourceLineNo">687</span><a name="line.687"></a>
-<span class="sourceLineNo">688</span>  public boolean balanceSwitch(final boolean b) throws IOException {<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    return getMasterRpcServices().switchBalancer(b, BalanceSwitchMode.ASYNC);<a name="line.689"></a>
-<span class="sourceLineNo">690</span>  }<a name="line.690"></a>
-<span class="sourceLineNo">691</span><a name="line.691"></a>
-<span class="sourceLineNo">692</span>  @Override<a name="line.692"></a>
-<span class="sourceLineNo">693</span>  protected String getProcessName() {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    return MASTER;<a name="line.694"></a>
-<span class="sourceLineNo">695</span>  }<a name="line.695"></a>
-<span class="sourceLineNo">696</span><a name="line.696"></a>
-<span class="sourceLineNo">697</span>  @Override<a name="line.697"></a>
-<span class="sourceLineNo">698</span>  protected boolean canCreateBaseZNode() {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    return true;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>  }<a name="line.700"></a>
-<span class="sourceLineNo">701</span><a name="line.701"></a>
-<span class="sourceLineNo">702</span>  @Override<a name="line.702"></a>
-<span class="sourceLineNo">703</span>  protected boolean canUpdateTableDescriptor() {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    return true;<a name="line.704"></a>
-<span class="sourceLineNo">705</span>  }<a name="line.705"></a>
-<span class="sourceLineNo">706</span><a name="line.706"></a>
-<span class="sourceLineNo">707</span>  @Override<a name="line.707"></a>
-<span class="sourceLineNo">708</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    return new MasterRpcServices(this);<a name="line.709"></a>
-<span class="sourceLineNo">710</span>  }<a name="line.710"></a>
-<span class="sourceLineNo">711</span><a name="line.711"></a>
-<span class="sourceLineNo">712</span>  @Override<a name="line.712"></a>
-<span class="sourceLineNo">713</span>  protected void configureInfoServer() {<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    infoServer.addServlet("master-status", "/master-status", MasterStatusServlet.class);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    infoServer.setAttribute(MASTER, this);<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.716"></a>
-<span class="sourceLineNo">717</span>      super.configureInfoServer();<a name="line.717"></a>
-<span class="sourceLineNo">718</span>    }<a name="line.718"></a>
-<span class="sourceLineNo">719</span>  }<a name="line.719"></a>
-<span class="sourceLineNo">720</span><a name="line.720"></a>
-<span class="sourceLineNo">721</span>  @Override<a name="line.721"></a>
-<span class="sourceLineNo">722</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    return MasterDumpServlet.class;<a name="line.723"></a>
-<span class="sourceLineNo">724</span>  }<a name="line.724"></a>
-<span class="sourceLineNo">725</span><a name="line.725"></a>
-<span class="sourceLineNo">726</span>  @Override<a name="line.726"></a>
-<span class="sourceLineNo">727</span>  public MetricsMaster getMasterMetrics() {<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    return metricsMaster;<a name="line.728"></a>
-<span class="sourceLineNo">729</span>  }<a name="line.729"></a>
-<span class="sourceLineNo">730</span><a name="line.730"></a>
-<span class="sourceLineNo">731</span>  /**<a name="line.731"></a>
-<span class="sourceLineNo">732</span>   * &lt;p&gt;<a name="line.732"></a>
-<span class="sourceLineNo">733</span>   * Initialize all ZK based system trackers. But do not include {@link RegionServerTracker}, it<a name="line.733"></a>
-<span class="sourceLineNo">734</span>   * should have already been initialized along with {@link ServerManager}.<a name="line.734"></a>
-<span class="sourceLineNo">735</span>   * &lt;/p&gt;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>   * &lt;p&gt;<a name="line.736"></a>
-<span class="sourceLineNo">737</span>   * Will be overridden in tests.<a name="line.737"></a>
-<span class="sourceLineNo">738</span>   * &lt;/p&gt;<a name="line.738"></a>
-<span class="sourceLineNo">739</span>   */<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  @VisibleForTesting<a name="line.740"></a>
-<span class="sourceLineNo">741</span>  protected void initializeZKBasedSystemTrackers()<a name="line.741"></a>
-<span class="sourceLineNo">742</span>      throws IOException, InterruptedException, KeeperException, ReplicationException {<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    this.balancer = LoadBalancerFactory.getLoadBalancer(conf);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>    this.normalizer = RegionNormalizerFactory.getRegionNormalizer(conf);<a name="line.744"></a>
-<span class="sourceLineNo">745</span>    this.normalizer.setMasterServices(this);<a name="line.745"></a>
-<span class="sourceLineNo">746</span>    this.normalizer.setMasterRpcServices((MasterRpcServices)rpcServices);<a name="line.746"></a>
-<span class="sourceLineNo">747</span>    this.loadBalancerTracker = new LoadBalancerTracker(zooKeeper, this);<a name="line.747"></a>
-<span class="sourceLineNo">748</span>    this.loadBalancerTracker.start();<a name="line.748"></a>
-<span class="sourceLineNo">749</span><a name="line.749"></a>
-<span class="sourceLineNo">750</span>    this.regionNormalizerTracker = new RegionNormalizerTracker(zooKeeper, this);<a name="line.750"></a>
-<span class="sourceLineNo">751</span>    this.regionNormalizerTracker.start();<a name="line.751"></a>
-<span class="sourceLineNo">752</span><a name="line.752"></a>
-<span class="sourceLineNo">753</span>    this.splitOrMergeTracker = new SplitOrMergeTracker(zooKeeper, conf, this);<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    this.splitOrMergeTracker.start();<a name="line.754"></a>
-<span class="sourceLineNo">755</span><a name="line.755"></a>
-<span class="sourceLineNo">756</span>    this.replicationPeerManager = ReplicationPeerManager.create(zooKeeper, conf);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    this.syncReplicationReplayWALManager = new SyncReplicationReplayWALManager(this);<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>    this.drainingServerTracker = new DrainingServerTracker(zooKeeper, this, this.serverManager);<a name="line.759"></a>
-<span class="sourceLineNo">760</span>    this.drainingServerTracker.start();<a name="line.760"></a>
-<span class="sourceLineNo">761</span><a name="line.761"></a>
-<span class="sourceLineNo">762</span>    this.maintenanceModeTracker = new MasterMaintenanceModeTracker(zooKeeper);<a name="line.762"></a>
-<span class="sourceLineNo">763</span>    this.maintenanceModeTracker.start();<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span>    String clientQuorumServers = conf.get(HConstants.CLIENT_ZOOKEEPER_QUORUM);<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    boolean clientZkObserverMode = conf.getBoolean(HConstants.CLIENT_ZOOKEEPER_OBSERVER_MODE,<a name="line.766"></a>
-<span class="sourceLineNo">767</span>      HConstants.DEFAULT_CLIENT_ZOOKEEPER_OBSERVER_MODE);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    if (clientQuorumServers != null &amp;&amp; !clientZkObserverMode) {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>      // we need to take care of the ZK information synchronization<a name="line.769"></a>
-<span class="sourceLineNo">770</span>      // if given client ZK are not observer nodes<a name="line.770"></a>
-<span class="sourceLineNo">771</span>      ZKWatcher clientZkWatcher = new ZKWatcher(conf,<a name="line.771"></a>
-<span class="sourceLineNo">772</span>          getProcessName() + ":" + rpcServices.getSocketAddress().getPort() + "-clientZK", this,<a name="line.772"></a>
-<span class="sourceLineNo">773</span>          false, true);<a name="line.773"></a>
-<span class="sourceLineNo">774</span>      this.metaLocationSyncer = new MetaLocationSyncer(zooKeeper, clientZkWatcher, this);<a name="line.774"></a>
-<span class="sourceLineNo">775</span>      this.metaLocationSyncer.start();<a name="line.775"></a>
-<span class="sourceLineNo">776</span>      this.masterAddressSyncer = new MasterAddressSyncer(zooKeeper, clientZkWatcher, this);<a name="line.776"></a>
-<span class="sourceLineNo">777</span>      this.masterAddressSyncer.start();<a name="line.777"></a>
-<span class="sourceLineNo">778</span>      // set cluster id is a one-go effort<a name="line.778"></a>
-<span class="sourceLineNo">779</span>      ZKClusterId.setClusterId(clientZkWatcher, fileSystemManager.getClusterId());<a name="line.779"></a>
-<span class="sourceLineNo">780</span>    }<a name="line.780"></a>
-<span class="sourceLineNo">781</span><a name="line.781"></a>
-<span class="sourceLineNo">782</span>    // Set the cluster as up.  If new RSs, they'll be waiting on this before<a name="line.782"></a>
-<span class="sourceLineNo">783</span>    // going ahead with their startup.<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    boolean wasUp = this.clusterStatusTracker.isClusterUp();<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    if (!wasUp) this.clusterStatusTracker.setClusterUp();<a name="line.785"></a>
-<span class="sourceLineNo">786</span><a name="line.786"></a>
-<span class="sourceLineNo">787</span>    LOG.info("Active/primary master=" + this.serverName +<a name="line.787"></a>
-<span class="sourceLineNo">788</span>        ", sessionid=0x" +<a name="line.788"></a>
-<span class="sourceLineNo">789</span>        Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()) +<a name="line.789"></a>
-<span class="sourceLineNo">790</span>        ", setting cluster-up flag (Was=" + wasUp + ")");<a name="line.790"></a>
-<span class="sourceLineNo">791</span><a name="line.791"></a>
-<span class="sourceLineNo">792</span>    // create/initialize the snapshot manager and other procedure managers<a name="line.792"></a>
-<span class="sourceLineNo">793</span>    this.snapshotManager = new SnapshotManager();<a name="line.793"></a>
-<span class="sourceLineNo">794</span>    this.mpmHost = new MasterProcedureManagerHost();<a name="line.794"></a>
-<span class="sourceLineNo">795</span>    this.mpmHost.register(this.snapshotManager);<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    this.mpmHost.register(new MasterFlushTableProcedureManager());<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    this.mpmHost.loadProcedures(conf);<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    this.mpmHost.initialize(this, this.metricsMaster);<a name="line.798"></a>
-<span class="sourceLineNo">799</span>  }<a name="line.799"></a>
-<span class="sourceLineNo">800</span><a name="line.800"></a>
-<span class="sourceLineNo">801</span>  /**<a name="line.801"></a>
-<span class="sourceLineNo">802</span>   * Finish initialization of HMaster after becoming the primary master.<a name="line.802"></a>
-<span class="sourceLineNo">803</span>   * &lt;p/&gt;<a name="line.803"></a>
-<span class="sourceLineNo">804</span>   * The startup order is a bit complicated but very important, do not change it unless you know<a name="line.804"></a>
-<span class="sourceLineNo">805</span>   * what you are doing.<a name="line.805"></a>
-<span class="sourceLineNo">806</span>   * &lt;ol&gt;<a name="line.806"></a>
-<span class="sourceLineNo">807</span>   * &lt;li&gt;Initialize file system based components - file system manager, wal manager, table<a name="line.807"></a>
-<span class="sourceLineNo">808</span>   * descriptors, etc&lt;/li&gt;<a name="line.808"></a>
-<span class="sourceLineNo">809</span>   * &lt;li&gt;Publish cluster id&lt;/li&gt;<a name="line.809"></a>
-<span class="sourceLineNo">810</span>   * &lt;li&gt;Here comes the most complicated part - initialize server manager, assignment manager and<a name="line.810"></a>
-<span class="sourceLineNo">811</span>   * region server tracker<a name="line.811"></a>
-<span class="sourceLineNo">812</span>   * &lt;ol type='i'&gt;<a name="line.812"></a>
-<span class="sourceLineNo">813</span>   * &lt;li&gt;Create server manager&lt;/li&gt;<a name="line.813"></a>
-<span class="sourceLineNo">814</span>   * &lt;li&gt;Create procedure executor, load the procedures, but do not start workers. We will start it<a name="line.814"></a>
-<span class="sourceLineNo">815</span>   * later after we finish scheduling SCPs to avoid scheduling duplicated SCPs for the same<a name="line.815"></a>
-<span class="sourceLineNo">816</span>   * server&lt;/li&gt;<a name="line.816"></a>
-<span class="sourceLineNo">817</span>   * &lt;li&gt;Create assignment manager and start it, load the meta region state, but do not load data<a name="line.817"></a>
-<span class="sourceLineNo">818</span>   * from meta region&lt;/li&gt;<a name="line.818"></a>
-<span class="sourceLineNo">819</span>   * &lt;li&gt;Start region server tracker, construct the online servers set and find out dead servers and<a name="line.819"></a>
-<span class="sourceLineNo">820</span>   * schedule SCP for them. The online servers will be constructed by scanning zk, and we will also<a name="line.820"></a>
-<span class="sourceLineNo">821</span>   * scan the wal directory to find out possible live region servers, and the differences between<a name="line.821"></a>
-<span class="sourceLineNo">822</span>   * these two sets are the dead servers&lt;/li&gt;<a name="line.822"></a>
-<span class="sourceLineNo">823</span>   * &lt;/ol&gt;<a name="line.823"></a>
-<span class="sourceLineNo">824</span>   * &lt;/li&gt;<a name="line.824"></a>
-<span class="sourceLineNo">825</span>   * &lt;li&gt;If this is a new deploy, schedule a InitMetaProcedure to initialize meta&lt;/li&gt;<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   * &lt;li&gt;Start necessary service threads - balancer, catalog janior, executor services, and also the<a name="line.826"></a>
-<span class="sourceLineNo">827</span>   * procedure executor, etc. Notice that the balancer must be created first as assignment manager<a name="line.827"></a>
-<span class="sourceLineNo">828</span>   * may use it when assigning regions.&lt;/li&gt;<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * &lt;li&gt;Wait for meta to be initialized if necesssary, start table state manager.&lt;/li&gt;<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   * &lt;li&gt;Wait for enough region servers to check-in&lt;/li&gt;<a name="line.830"></a>
-<span class="sourceLineNo">831</span>   * &lt;li&gt;Let assignment manager load data from meta and construct region states&lt;/li&gt;<a name="line.831"></a>
-<span class="sourceLineNo">832</span>   * &lt;li&gt;Start all other things such as chore services, etc&lt;/li&gt;<a name="line.832"></a>
-<span class="sourceLineNo">833</span>   * &lt;/ol&gt;<a name="line.833"></a>
-<span class="sourceLineNo">834</span>   * &lt;p/&gt;<a name="line.834"></a>
-<span class="sourceLineNo">835</span>   * Notice that now we will not schedule a special procedure to make meta online(unless the first<a name="line.835"></a>
-<span class="sourceLineNo">836</span>   * time where meta has not been created yet), we will rely on SCP to bring meta online.<a name="line.836"></a>
-<span class="sourceLineNo">837</span>   */<a name="line.837"></a>
-<span class="sourceLineNo">838</span>  private void finishActiveMasterInitialization(MonitoredTask status) throws IOException,<a name="line.838"></a>
-<span class="sourceLineNo">839</span>          InterruptedException, KeeperException, ReplicationException {<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    Thread zombieDetector = new Thread(new InitializationMonitor(this),<a name="line.840"></a>
-<span class="sourceLineNo">841</span>        "ActiveMasterInitializationMonitor-" + System.currentTimeMillis());<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    zombieDetector.setDaemon(true);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    zombieDetector.start();<a name="line.843"></a>
-<span class="sourceLineNo">844</span><a name="line.844"></a>
-<span class="sourceLineNo">845</span>    /*<a name="line.845"></a>
-<span class="sourceLineNo">846</span>     * We are active master now... go initialize components we need to run.<a name="line.846"></a>
-<span class="sourceLineNo">847</span>     */<a name="line.847"></a>
-<span class="sourceLineNo">848</span>    status.setStatus("Initializing Master file system");<a name="line.848"></a>
-<span class="sourceLineNo">849</span><a name="line.849"></a>
-<span class="sourceLineNo">850</span>    this.masterActiveTime = System.currentTimeMillis();<a name="line.850"></a>
-<span class="sourceLineNo">851</span>    // TODO: Do this using Dependency Injection, using PicoContainer, Guice or Spring.<a name="line.851"></a>
-<span class="sourceLineNo">852</span>    // Initialize the chunkCreator<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    initializeMemStoreChunkCreator();<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    this.fileSystemManager = new MasterFileSystem(conf);<a name="line.854"></a>
-<span class="sourceLineNo">855</span>    this.walManager = new MasterWalManager(this);<a name="line.855"></a>
-<span class="sourceLineNo">856</span><a name="line.856"></a>
-<span class="sourceLineNo">857</span>    // enable table descriptors cache<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    this.tableDescriptors.setCacheOn();<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>    // warm-up HTDs cache on master initialization<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    if (preLoadTableDescriptors) {<a name="line.861"></a>
-<span class="sourceLineNo">862</span>      status.setStatus("Pre-loading table descriptors");<a name="line.862"></a>
-<span class="sourceLineNo">863</span>      this.tableDescriptors.getAll();<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    }<a name="line.864"></a>
-<span class="sourceLineNo">865</span><a name="line.865"></a>
-<span class="sourceLineNo">866</span>    // Publish cluster ID; set it in Master too. The superclass RegionServer does this later but<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    // only after it has checked in with the Master. At least a few tests ask Master for clusterId<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    // before it has called its run method and before RegionServer has done the reportForDuty.<a name="line.868"></a>
-<span class="sourceLineNo">869</span>    ClusterId clusterId = fileSystemManager.getClusterId();<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    status.setStatus("Publishing Cluster ID " + clusterId + " in ZooKeeper");<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    ZKClusterId.setClusterId(this.zooKeeper, fileSystemManager.getClusterId());<a name="line.871"></a>
-<span class="sourceLineNo">872</span>    this.clusterId = clusterId.toString();<a name="line.872"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.exceptions.MergeRegionException;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.master.MasterRpcServices.BalanceSwitchMode;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.master.assignment.AssignmentManager;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.master.assignment.MergeTableRegionsProcedure;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.master.assignment.RegionStates;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.master.balancer.BalancerChore;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.master.balancer.ClusterStatusChore;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.master.cleaner.CleanerChore;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.master.cleaner.HFileCleaner;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.master.cleaner.LogCleaner;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.master.cleaner.ReplicationBarrierCleaner;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.master.locking.LockManager;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan.PlanType;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerFactory;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.master.procedure.CreateTableProcedure;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.master.procedure.DeleteNamespaceProcedure;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.master.procedure.DisableTableProcedure;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.master.procedure.EnableTableProcedure;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.master.procedure.InitMetaProcedure;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.h

<TRUNCATED>

[09/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html
index 9e987f3..f2fd195 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterRpcServices.html
@@ -126,1982 +126,1982 @@
 <span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.118"></a>
 <span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.119"></a>
 <span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier.RegionSpecifierType;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockHeartbeatRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockHeartbeatResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockService;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ClearDeadServersRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ClearDeadServersResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DecommissionRegionServersRequest;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DecommissionRegionServersResponse;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableCatalogJanitorRequest;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableCatalogJanitorResponse;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetClusterStatusRequest;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetClusterStatusResponse;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetLocksRequest;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetLocksResponse;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProceduresRequest;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProceduresResponse;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableStateRequest;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableStateResponse;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledRequest;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledResponse;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCleanerChoreEnabledRequest;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCleanerChoreEnabledResponse;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsInMaintenanceModeRequest;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsInMaintenanceModeResponse;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsMasterRunningRequest;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsMasterRunningResponse;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSplitOrMergeEnabledRequest;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSplitOrMergeEnabledResponse;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListDecommissionedRegionServersRequest;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListDecommissionedRegionServersResponse;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.199"></a>
-<span class="sourceLineNo">200</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.200"></a>
-<span class="sourceLineNo">201</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceRequest;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceResponse;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByNamespaceRequest;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByNamespaceResponse;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampForRegionRequest;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampRequest;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse;<a name="line.207"></a>
-<span class="sourceLineNo">208</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.210"></a>
-<span class="sourceLineNo">211</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.211"></a>
-<span class="sourceLineNo">212</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyTableRequest;<a name="line.215"></a>
-<span class="sourceLineNo">216</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyTableResponse;<a name="line.216"></a>
-<span class="sourceLineNo">217</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.NormalizeRequest;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.NormalizeResponse;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RecommissionRegionServerRequest;<a name="line.223"></a>
-<span class="sourceLineNo">224</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RecommissionRegionServerResponse;<a name="line.224"></a>
-<span class="sourceLineNo">225</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.225"></a>
-<span class="sourceLineNo">226</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCatalogScanRequest;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCatalogScanResponse;<a name="line.228"></a>
-<span class="sourceLineNo">229</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCleanerChoreRequest;<a name="line.229"></a>
-<span class="sourceLineNo">230</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCleanerChoreResponse;<a name="line.230"></a>
-<span class="sourceLineNo">231</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse;<a name="line.232"></a>
-<span class="sourceLineNo">233</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.233"></a>
-<span class="sourceLineNo">234</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.234"></a>
-<span class="sourceLineNo">235</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetCleanerChoreRunningRequest;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetCleanerChoreRunningResponse;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetNormalizerRunningRequest;<a name="line.237"></a>
-<span class="sourceLineNo">238</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetNormalizerRunningResponse;<a name="line.238"></a>
-<span class="sourceLineNo">239</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.239"></a>
-<span class="sourceLineNo">240</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetSplitOrMergeEnabledRequest;<a name="line.241"></a>
-<span class="sourceLineNo">242</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetSplitOrMergeEnabledResponse;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ShutdownRequest;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ShutdownResponse;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.245"></a>
-<span class="sourceLineNo">246</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.246"></a>
-<span class="sourceLineNo">247</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SplitTableRegionRequest;<a name="line.247"></a>
-<span class="sourceLineNo">248</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SplitTableRegionResponse;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.StopMasterRequest;<a name="line.249"></a>
-<span class="sourceLineNo">250</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.StopMasterResponse;<a name="line.250"></a>
-<span class="sourceLineNo">251</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.251"></a>
-<span class="sourceLineNo">252</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.252"></a>
-<span class="sourceLineNo">253</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetQuotaStatesRequest;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetQuotaStatesResponse;<a name="line.256"></a>
-<span class="sourceLineNo">257</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetQuotaStatesResponse.NamespaceQuotaSnapshot;<a name="line.257"></a>
-<span class="sourceLineNo">258</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetQuotaStatesResponse.TableQuotaSnapshot;<a name="line.258"></a>
-<span class="sourceLineNo">259</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetSpaceQuotaRegionSizesRequest;<a name="line.259"></a>
-<span class="sourceLineNo">260</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetSpaceQuotaRegionSizesResponse;<a name="line.260"></a>
-<span class="sourceLineNo">261</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetSpaceQuotaRegionSizesResponse.RegionSizes;<a name="line.261"></a>
-<span class="sourceLineNo">262</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.FileArchiveNotificationRequest;<a name="line.262"></a>
-<span class="sourceLineNo">263</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.FileArchiveNotificationResponse;<a name="line.263"></a>
-<span class="sourceLineNo">264</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.GetLastFlushedSequenceIdRequest;<a name="line.264"></a>
-<span class="sourceLineNo">265</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.GetLastFlushedSequenceIdResponse;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerReportRequest;<a name="line.266"></a>
-<span class="sourceLineNo">267</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerReportResponse;<a name="line.267"></a>
-<span class="sourceLineNo">268</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest;<a name="line.268"></a>
-<span class="sourceLineNo">269</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStatusService;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUse;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUseReportRequest;<a name="line.272"></a>
-<span class="sourceLineNo">273</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUseReportResponse;<a name="line.273"></a>
-<span class="sourceLineNo">274</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RemoteProcedureResult;<a name="line.274"></a>
-<span class="sourceLineNo">275</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportProcedureDoneRequest;<a name="line.275"></a>
-<span class="sourceLineNo">276</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportProcedureDoneResponse;<a name="line.276"></a>
-<span class="sourceLineNo">277</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRSFatalErrorRequest;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRSFatalErrorResponse;<a name="line.278"></a>
-<span class="sourceLineNo">279</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionRequest;<a name="line.279"></a>
-<span class="sourceLineNo">280</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse;<a name="line.280"></a>
-<span class="sourceLineNo">281</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.282"></a>
-<span class="sourceLineNo">283</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.283"></a>
-<span class="sourceLineNo">284</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.285"></a>
-<span class="sourceLineNo">286</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.286"></a>
-<span class="sourceLineNo">287</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.287"></a>
-<span class="sourceLineNo">288</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ReplicationState;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.TransitReplicationPeerSyncReplicationStateRequest;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.TransitReplicationPeerSyncReplicationStateResponse;<a name="line.295"></a>
-<span class="sourceLineNo">296</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.296"></a>
-<span class="sourceLineNo">297</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.297"></a>
-<span class="sourceLineNo">298</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription;<a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>/**<a name="line.300"></a>
-<span class="sourceLineNo">301</span> * Implements the master RPC services.<a name="line.301"></a>
-<span class="sourceLineNo">302</span> */<a name="line.302"></a>
-<span class="sourceLineNo">303</span>@InterfaceAudience.Private<a name="line.303"></a>
-<span class="sourceLineNo">304</span>@SuppressWarnings("deprecation")<a name="line.304"></a>
-<span class="sourceLineNo">305</span>public class MasterRpcServices extends RSRpcServices<a name="line.305"></a>
-<span class="sourceLineNo">306</span>      implements MasterService.BlockingInterface, RegionServerStatusService.BlockingInterface,<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        LockService.BlockingInterface {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  private static final Logger LOG = LoggerFactory.getLogger(MasterRpcServices.class.getName());<a name="line.308"></a>
-<span class="sourceLineNo">309</span><a name="line.309"></a>
-<span class="sourceLineNo">310</span>  private final HMaster master;<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>  /**<a name="line.312"></a>
-<span class="sourceLineNo">313</span>   * @return Subset of configuration to pass initializing regionservers: e.g.<a name="line.313"></a>
-<span class="sourceLineNo">314</span>   * the filesystem to use and root directory to use.<a name="line.314"></a>
-<span class="sourceLineNo">315</span>   */<a name="line.315"></a>
-<span class="sourceLineNo">316</span>  private RegionServerStartupResponse.Builder createConfigurationSubset() {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    RegionServerStartupResponse.Builder resp = addConfig(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      RegionServerStartupResponse.newBuilder(), HConstants.HBASE_DIR);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    resp = addConfig(resp, "fs.defaultFS");<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    return addConfig(resp, "hbase.master.info.port");<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>
-<span class="sourceLineNo">323</span>  private RegionServerStartupResponse.Builder addConfig(<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      final RegionServerStartupResponse.Builder resp, final String key) {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    NameStringPair.Builder entry = NameStringPair.newBuilder()<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      .setName(key)<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      .setValue(master.getConfiguration().get(key));<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    resp.addMapEntries(entry.build());<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    return resp;<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>  public MasterRpcServices(HMaster m) throws IOException {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    super(m);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    master = m;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  protected RpcServerInterface createRpcServer(Server server, Configuration conf,<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      RpcSchedulerFactory rpcSchedulerFactory, InetSocketAddress bindAddress, String name)<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      throws IOException {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    // RpcServer at HM by default enable ByteBufferPool iff HM having user table region in it<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    boolean reservoirEnabled = conf.getBoolean(RESERVOIR_ENABLED_KEY,<a name="line.342"></a>
-<span class="sourceLineNo">343</span>        (LoadBalancer.isTablesOnMaster(conf) &amp;&amp; !LoadBalancer.isSystemTablesOnlyOnMaster(conf)));<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    try {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      return RpcServerFactory.createRpcServer(server, name, getServices(),<a name="line.345"></a>
-<span class="sourceLineNo">346</span>          bindAddress, // use final bindAddress for this server.<a name="line.346"></a>
-<span class="sourceLineNo">347</span>          conf, rpcSchedulerFactory.create(conf, this, server), reservoirEnabled);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    } catch (BindException be) {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>      throw new IOException(be.getMessage() + ". To switch ports use the '"<a name="line.349"></a>
-<span class="sourceLineNo">350</span>          + HConstants.MASTER_PORT + "' configuration property.",<a name="line.350"></a>
-<span class="sourceLineNo">351</span>          be.getCause() != null ? be.getCause() : be);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    }<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  protected PriorityFunction createPriority() {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    return new MasterAnnotationReadingPriorityFunction(this);<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>   * Checks for the following pre-checks in order:<a name="line.361"></a>
-<span class="sourceLineNo">362</span>   * &lt;ol&gt;<a name="line.362"></a>
-<span class="sourceLineNo">363</span>   *   &lt;li&gt;Master is initialized&lt;/li&gt;<a name="line.363"></a>
-<span class="sourceLineNo">364</span>   *   &lt;li&gt;Rpc caller has admin permissions&lt;/li&gt;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>   * &lt;/ol&gt;<a name="line.365"></a>
-<span class="sourceLineNo">366</span>   * @param requestName name of rpc request. Used in reporting failures to provide context.<a name="line.366"></a>
-<span class="sourceLineNo">367</span>   * @throws ServiceException If any of the above listed pre-check fails.<a name="line.367"></a>
-<span class="sourceLineNo">368</span>   */<a name="line.368"></a>
-<span class="sourceLineNo">369</span>  private void rpcPreCheck(String requestName) throws ServiceException {<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    try {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      master.checkInitialized();<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      requirePermission(requestName, Permission.Action.ADMIN);<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    } catch (IOException ioe) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      throw new ServiceException(ioe);<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><a name="line.377"></a>
-<span class="sourceLineNo">378</span>  enum BalanceSwitchMode {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    SYNC,<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    ASYNC<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>  /**<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   * Assigns balancer switch according to BalanceSwitchMode<a name="line.384"></a>
-<span class="sourceLineNo">385</span>   * @param b new balancer switch<a name="line.385"></a>
-<span class="sourceLineNo">386</span>   * @param mode BalanceSwitchMode<a name="line.386"></a>
-<span class="sourceLineNo">387</span>   * @return old balancer switch<a name="line.387"></a>
-<span class="sourceLineNo">388</span>   */<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  boolean switchBalancer(final boolean b, BalanceSwitchMode mode) throws IOException {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    boolean oldValue = master.loadBalancerTracker.isBalancerOn();<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    boolean newValue = b;<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    try {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      if (master.cpHost != null) {<a name="line.393"></a>
-<span class="sourceLineNo">394</span>        master.cpHost.preBalanceSwitch(newValue);<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      }<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      try {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        if (mode == BalanceSwitchMode.SYNC) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>          synchronized (master.getLoadBalancer()) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>            master.loadBalancerTracker.setBalancerOn(newValue);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          }<a name="line.400"></a>
-<span class="sourceLineNo">401</span>        } else {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          master.loadBalancerTracker.setBalancerOn(newValue);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>        }<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      } catch (KeeperException ke) {<a name="line.404"></a>
-<span class="sourceLineNo">405</span>        throw new IOException(ke);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      }<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      LOG.info(master.getClientIdAuditPrefix() + " set balanceSwitch=" + newValue);<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      if (master.cpHost != null) {<a name="line.408"></a>
-<span class="sourceLineNo">409</span>        master.cpHost.postBalanceSwitch(oldValue, newValue);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>      }<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    } catch (IOException ioe) {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      LOG.warn("Error flipping balance switch", ioe);<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    }<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    return oldValue;<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  }<a name="line.415"></a>
-<span class="sourceLineNo">416</span><a name="line.416"></a>
-<span class="sourceLineNo">417</span>  boolean synchronousBalanceSwitch(final boolean b) throws IOException {<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    return switchBalancer(b, BalanceSwitchMode.SYNC);<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>  /**<a name="line.421"></a>
-<span class="sourceLineNo">422</span>   * @return list of blocking services and their security info classes that this server supports<a name="line.422"></a>
-<span class="sourceLineNo">423</span>   */<a name="line.423"></a>
-<span class="sourceLineNo">424</span>  @Override<a name="line.424"></a>
-<span class="sourceLineNo">425</span>  protected List&lt;BlockingServiceAndInterface&gt; getServices() {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    List&lt;BlockingServiceAndInterface&gt; bssi = new ArrayList&lt;&gt;(5);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    bssi.add(new BlockingServiceAndInterface(<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      MasterService.newReflectiveBlockingService(this),<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      MasterService.BlockingInterface.class));<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    bssi.add(new BlockingServiceAndInterface(<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      RegionServerStatusService.newReflectiveBlockingService(this),<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      RegionServerStatusService.BlockingInterface.class));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    bssi.add(new BlockingServiceAndInterface(LockService.newReflectiveBlockingService(this),<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        LockService.BlockingInterface.class));<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    bssi.addAll(super.getServices());<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    return bssi;<a name="line.436"></a>
-<span class="sourceLineNo">437</span>  }<a name="line.437"></a>
-<span class="sourceLineNo">438</span><a name="line.438"></a>
-<span class="sourceLineNo">439</span>  @Override<a name="line.439"></a>
-<span class="sourceLineNo">440</span>  @QosPriority(priority = HConstants.ADMIN_QOS)<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  public GetLastFlushedSequenceIdResponse getLastFlushedSequenceId(RpcController controller,<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      GetLastFlushedSequenceIdRequest request) throws ServiceException {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    try {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      master.checkServiceStarted();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    } catch (IOException ioe) {<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      throw new ServiceException(ioe);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    byte[] encodedRegionName = request.getRegionName().toByteArray();<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    RegionStoreSequenceIds ids = master.getServerManager()<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      .getLastFlushedSequenceId(encodedRegionName);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>    return ResponseConverter.buildGetLastFlushedSequenceIdResponse(ids);<a name="line.451"></a>
-<span class="sourceLineNo">452</span>  }<a name="line.452"></a>
-<span class="sourceLineNo">453</span><a name="line.453"></a>
-<span class="sourceLineNo">454</span>  @Override<a name="line.454"></a>
-<span class="sourceLineNo">455</span>  public RegionServerReportResponse regionServerReport(<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      RpcController controller, RegionServerReportRequest request) throws ServiceException {<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    try {<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      master.checkServiceStarted();<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      int version = VersionInfoUtil.getCurrentClientVersionNumber();<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      ClusterStatusProtos.ServerLoad sl = request.getLoad();<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      ServerName serverName = ProtobufUtil.toServerName(request.getServer());<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      ServerMetrics oldLoad = master.getServerManager().getLoad(serverName);<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      ServerMetrics newLoad = ServerMetricsBuilder.toServerMetrics(serverName, version, sl);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      master.getServerManager().regionServerReport(serverName, newLoad);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      master.getAssignmentManager()<a name="line.465"></a>
-<span class="sourceLineNo">466</span>          .reportOnlineRegions(serverName, newLoad.getRegionMetrics().keySet());<a name="line.466"></a>
-<span class="sourceLineNo">467</span>      if (sl != null &amp;&amp; master.metricsMaster != null) {<a name="line.467"></a>
-<span class="sourceLineNo">468</span>        // Up our metrics.<a name="line.468"></a>
-<span class="sourceLineNo">469</span>        master.metricsMaster.incrementRequests(sl.getTotalNumberOfRequests()<a name="line.469"></a>
-<span class="sourceLineNo">470</span>            - (oldLoad != null ? oldLoad.getRequestCount() : 0));<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      }<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    } catch (IOException ioe) {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      throw new ServiceException(ioe);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    }<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    return RegionServerReportResponse.newBuilder().build();<a name="line.475"></a>
-<span class="sourceLineNo">476</span>  }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>  @Override<a name="line.478"></a>
-<span class="sourceLineNo">479</span>  public RegionServerStartupResponse regionServerStartup(<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      RpcController controller, RegionServerStartupRequest request) throws ServiceException {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    // Register with server manager<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    try {<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      master.checkServiceStarted();<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      int version = VersionInfoUtil.getCurrentClientVersionNumber();<a name="line.484"></a>
-<span class="sourceLineNo">485</span>      InetAddress ia = master.getRemoteInetAddress(<a name="line.485"></a>
-<span class="sourceLineNo">486</span>        request.getPort(), request.getServerStartCode());<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      // if regionserver passed hostname to use,<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      // then use it instead of doing a reverse DNS lookup<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      ServerName rs = master.getServerManager().regionServerStartup(request, version, ia);<a name="line.489"></a>
-<span class="sourceLineNo">490</span><a name="line.490"></a>
-<span class="sourceLineNo">491</span>      // Send back some config info<a name="line.491"></a>
-<span class="sourceLineNo">492</span>      RegionServerStartupResponse.Builder resp = createConfigurationSubset();<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      NameStringPair.Builder entry = NameStringPair.newBuilder()<a name="line.493"></a>
-<span class="sourceLineNo">494</span>        .setName(HConstants.KEY_FOR_HOSTNAME_SEEN_BY_MASTER)<a name="line.494"></a>
-<span class="sourceLineNo">495</span>        .setValue(rs.getHostname());<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      resp.addMapEntries(entry.build());<a name="line.496"></a>
-<span class="sourceLineNo">497</span><a name="line.497"></a>
-<span class="sourceLineNo">498</span>      return resp.build();<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    } catch (IOException ioe) {<a name="line.499"></a>
-<span class="sourceLineNo">500</span>      throw new ServiceException(ioe);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    }<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>  @Override<a name="line.504"></a>
-<span class="sourceLineNo">505</span>  public ReportRSFatalErrorResponse reportRSFatalError(<a name="line.505"></a>
-<span class="sourceLineNo">506</span>      RpcController controller, ReportRSFatalErrorRequest request) throws ServiceException {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    String errorText = request.getErrorMessage();<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    ServerName sn = ProtobufUtil.toServerName(request.getServer());<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    String msg = "Region server " + sn<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      + " reported a fatal error:\n" + errorText;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    LOG.error(msg);<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    master.rsFatals.add(msg);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    return ReportRSFatalErrorResponse.newBuilder().build();<a name="line.513"></a>
-<span class="sourceLineNo">514</span>  }<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span>  @Override<a name="line.516"></a>
-<span class="sourceLineNo">517</span>  public AddColumnResponse addColumn(RpcController controller,<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      AddColumnRequest req) throws ServiceException {<a name="line.518"></a>
-<span class="sourceLineNo">519</span>    try {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>      long procId = master.addColumn(<a name="line.520"></a>
-<span class="sourceLineNo">521</span>          ProtobufUtil.toTableName(req.getTableName()),<a name="line.521"></a>
-<span class="sourceLineNo">522</span>          ProtobufUtil.toColumnFamilyDescriptor(req.getColumnFamilies()),<a name="line.522"></a>
-<span class="sourceLineNo">523</span>          req.getNonceGroup(),<a name="line.523"></a>
-<span class="sourceLineNo">524</span>          req.getNonce());<a name="line.524"></a>
-<span class="sourceLineNo">525</span>      if (procId == -1) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>        // This mean operation was not performed in server, so do not set any procId<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        return AddColumnResponse.newBuilder().build();<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      } else {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        return AddColumnResponse.newBuilder().setProcId(procId).build();<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    } catch (IOException ioe) {<a name="line.531"></a>
-<span class="sourceLineNo">532</span>      throw new ServiceException(ioe);<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    }<a name="line.533"></a>
-<span class="sourceLineNo">534</span>  }<a name="line.534"></a>
-<span class="sourceLineNo">535</span><a name="line.535"></a>
-<span class="sourceLineNo">536</span>  @Override<a name="line.536"></a>
-<span class="sourceLineNo">537</span>  public AssignRegionResponse assignRegion(RpcController controller,<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      AssignRegionRequest req) throws ServiceException {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    try {<a name="line.539"></a>
-<span class="sourceLineNo">540</span>      master.checkInitialized();<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>      final RegionSpecifierType type = req.getRegion().getType();<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      if (type != RegionSpecifierType.REGION_NAME) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>        LOG.warn("assignRegion specifier type: expected: " + RegionSpecifierType.REGION_NAME<a name="line.544"></a>
-<span class="sourceLineNo">545</span>          + " actual: " + type);<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>      final byte[] regionName = req.getRegion().getValue().toByteArray();<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      final RegionInfo regionInfo = master.getAssignmentManager().getRegionInfo(regionName);<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      if (regionInfo == null) throw new UnknownRegionException(Bytes.toStringBinary(regionName));<a name="line.550"></a>
-<span class="sourceLineNo">551</span><a name="line.551"></a>
-<span class="sourceLineNo">552</span>      final AssignRegionResponse arr = AssignRegionResponse.newBuilder().build();<a name="line.552"></a>
-<span class="sourceLineNo">553</span>      if (master.cpHost != null) {<a name="line.553"></a>
-<span class="sourceLineNo">554</span>        master.cpHost.preAssign(regionInfo);<a name="line.554"></a>
-<span class="sourceLineNo">555</span>      }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>      LOG.info(master.getClientIdAuditPrefix() + " assign " + regionInfo.getRegionNameAsString());<a name="line.556"></a>
-<span class="sourceLineNo">557</span>      master.getAssignmentManager().assign(regionInfo);<a name="line.557"></a>
-<span class="sourceLineNo">558</span>      if (master.cpHost != null) {<a name="line.558"></a>
-<span class="sourceLineNo">559</span>        master.cpHost.postAssign(regionInfo);<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      }<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      return arr;<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    } catch (IOException ioe) {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>      throw new ServiceException(ioe);<a name="line.563"></a>
-<span class="sourceLineNo">564</span>    }<a name="line.564"></a>
-<span class="sourceLineNo">565</span>  }<a name="line.565"></a>
-<span class="sourceLineNo">566</span><a name="line.566"></a>
-<span class="sourceLineNo">567</span><a name="line.567"></a>
-<span class="sourceLineNo">568</span>  @Override<a name="line.568"></a>
-<span class="sourceLineNo">569</span>  public BalanceResponse balance(RpcController controller,<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      BalanceRequest request) throws ServiceException {<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    try {<a name="line.571"></a>
-<span class="sourceLineNo">572</span>      return BalanceResponse.newBuilder().setBalancerRan(master.balance(<a name="line.572"></a>
-<span class="sourceLineNo">573</span>        request.hasForce() ? request.getForce() : false)).build();<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    } catch (IOException ex) {<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      throw new ServiceException(ex);<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    }<a name="line.576"></a>
-<span class="sourceLineNo">577</span>  }<a name="line.577"></a>
-<span class="sourceLineNo">578</span><a name="line.578"></a>
-<span class="sourceLineNo">579</span>  @Override<a name="line.579"></a>
-<span class="sourceLineNo">580</span>  public CreateNamespaceResponse createNamespace(RpcController controller,<a name="line.580"></a>
-<span class="sourceLineNo">581</span>     CreateNamespaceRequest request) throws ServiceException {<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    try {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      long procId = master.createNamespace(<a name="line.583"></a>
-<span class="sourceLineNo">584</span>        ProtobufUtil.toNamespaceDescriptor(request.getNamespaceDescriptor()),<a name="line.584"></a>
-<span class="sourceLineNo">585</span>        request.getNonceGroup(),<a name="line.585"></a>
-<span class="sourceLineNo">586</span>        request.getNonce());<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      return CreateNamespaceResponse.newBuilder().setProcId(procId).build();<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    } catch (IOException e) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>      throw new ServiceException(e);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    }<a name="line.590"></a>
-<span class="sourceLineNo">591</span>  }<a name="line.591"></a>
-<span class="sourceLineNo">592</span><a name="line.592"></a>
-<span class="sourceLineNo">593</span>  @Override<a name="line.593"></a>
-<span class="sourceLineNo">594</span>  public CreateTableResponse createTable(RpcController controller, CreateTableRequest req)<a name="line.594"></a>
-<span class="sourceLineNo">595</span>  throws ServiceException {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>    TableDescriptor tableDescriptor = ProtobufUtil.toTableDescriptor(req.getTableSchema());<a name="line.596"></a>
-<span class="sourceLineNo">597</span>    byte [][] splitKeys = ProtobufUtil.getSplitKeysArray(req);<a name="line.597"></a>
-<span class="sourceLineNo">598</span>    try {<a name="line.598"></a>
-<span class="sourceLineNo">599</span>      long procId =<a name="line.599"></a>
-<span class="sourceLineNo">600</span>          master.createTable(tableDescriptor, splitKeys, req.getNonceGroup(), req.getNonce());<a name="line.600"></a>
-<span class="sourceLineNo">601</span>      return CreateTableResponse.newBuilder().setProcId(procId).build();<a name="line.601"></a>
-<span class="sourceLineNo">602</span>    } catch (IOException ioe) {<a name="line.602"></a>
-<span class="sourceLineNo">603</span>      throw new ServiceException(ioe);<a name="line.603"></a>
-<span class="sourceLineNo">604</span>    }<a name="line.604"></a>
-<span class="sourceLineNo">605</span>  }<a name="line.605"></a>
-<span class="sourceLineNo">606</span><a name="line.606"></a>
-<span class="sourceLineNo">607</span>  @Override<a name="line.607"></a>
-<span class="sourceLineNo">608</span>  public DeleteColumnResponse deleteColumn(RpcController controller,<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      DeleteColumnRequest req) throws ServiceException {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>    try {<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      long procId = master.deleteColumn(<a name="line.611"></a>
-<span class="sourceLineNo">612</span>        ProtobufUtil.toTableName(req.getTableName()),<a name="line.612"></a>
-<span class="sourceLineNo">613</span>        req.getColumnName().toByteArray(),<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        req.getNonceGroup(),<a name="line.614"></a>
-<span class="sourceLineNo">615</span>        req.getNonce());<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      if (procId == -1) {<a name="line.616"></a>
-<span class="sourceLineNo">617</span>        // This mean operation was not performed in server, so do not set any procId<a name="line.617"></a>
-<span class="sourceLineNo">618</span>        return DeleteColumnResponse.newBuilder().build();<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      } else {<a name="line.619"></a>
-<span class="sourceLineNo">620</span>        return DeleteColumnResponse.newBuilder().setProcId(procId).build();<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      }<a name="line.621"></a>
-<span class="sourceLineNo">622</span>    } catch (IOException ioe) {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      throw new ServiceException(ioe);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>    }<a name="line.624"></a>
-<span class="sourceLineNo">625</span>  }<a name="line.625"></a>
-<span class="sourceLineNo">626</span><a name="line.626"></a>
-<span class="sourceLineNo">627</span>  @Override<a name="line.627"></a>
-<span class="sourceLineNo">628</span>  public DeleteNamespaceResponse deleteNamespace(RpcController controller,<a name="line.628"></a>
-<span class="sourceLineNo">629</span>      DeleteNamespaceRequest request) throws ServiceException {<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    try {<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      long procId = master.deleteNamespace(<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        request.getNamespaceName(),<a name="line.632"></a>
-<span class="sourceLineNo">633</span>        request.getNonceGroup(),<a name="line.633"></a>
-<span class="sourceLineNo">634</span>        request.getNonce());<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      return DeleteNamespaceResponse.newBuilder().setProcId(procId).build();<a name="line.635"></a>
-<span class="sourceLineNo">636</span>    } catch (IOException e) {<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      throw new ServiceException(e);<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    }<a name="line.638"></a>
-<span class="sourceLineNo">639</span>  }<a name="line.639"></a>
-<span class="sourceLineNo">640</span><a name="line.640"></a>
-<span class="sourceLineNo">641</span>  /**<a name="line.641"></a>
-<span class="sourceLineNo">642</span>   * Execute Delete Snapshot operation.<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * @return DeleteSnapshotResponse (a protobuf wrapped void) if the snapshot existed and was<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   *    deleted properly.<a name="line.644"></a>
-<span class="sourceLineNo">645</span>   * @throws ServiceException wrapping SnapshotDoesNotExistException if specified snapshot did not<a name="line.645"></a>
-<span class="sourceLineNo">646</span>   *    exist.<a name="line.646"></a>
-<span class="sourceLineNo">647</span>   */<a name="line.647"></a>
-<span class="sourceLineNo">648</span>  @Override<a name="line.648"></a>
-<span class="sourceLineNo">649</span>  public DeleteSnapshotResponse deleteSnapshot(RpcController controller,<a name="line.649"></a>
-<span class="sourceLineNo">650</span>      DeleteSnapshotRequest request) throws ServiceException {<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    try {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      master.checkInitialized();<a name="line.652"></a>
-<span class="sourceLineNo">653</span>      master.snapshotManager.checkSnapshotSupport();<a name="line.653"></a>
-<span class="sourceLineNo">654</span><a name="line.654"></a>
-<span class="sourceLineNo">655</span>      LOG.info(master.getClientIdAuditPrefix() + " delete " + request.getSnapshot());<a name="line.655"></a>
-<span class="sourceLineNo">656</span>      master.snapshotManager.deleteSnapshot(request.getSnapshot());<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      return DeleteSnapshotResponse.newBuilder().build();<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    } catch (IOException e) {<a name="line.658"></a>
-<span class="sourceLineNo">659</span>      throw new ServiceException(e);<a name="line.659"></a>
-<span class="sourceLineNo">660</span>    }<a name="line.660"></a>
-<span class="sourceLineNo">661</span>  }<a name="line.661"></a>
-<span class="sourceLineNo">662</span><a name="line.662"></a>
-<span class="sourceLineNo">663</span>  @Override<a name="line.663"></a>
-<span class="sourceLineNo">664</span>  public DeleteTableResponse deleteTable(RpcController controller,<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      DeleteTableRequest request) throws ServiceException {<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    try {<a name="line.666"></a>
-<span class="sourceLineNo">667</span>      long procId = master.deleteTable(ProtobufUtil.toTableName(<a name="line.667"></a>
-<span class="sourceLineNo">668</span>          request.getTableName()), request.getNonceGroup(), request.getNonce());<a name="line.668"></a>
-<span class="sourceLineNo">669</span>      return DeleteTableResponse.newBuilder().setProcId(procId).build();<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    } catch (IOException ioe) {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>      throw new ServiceException(ioe);<a name="line.671"></a>
-<span class="sourceLineNo">672</span>    }<a name="line.672"></a>
-<span class="sourceLineNo">673</span>  }<a name="line.673"></a>
-<span class="sourceLineNo">674</span><a name="line.674"></a>
-<span class="sourceLineNo">675</span>  @Override<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  public TruncateTableResponse truncateTable(RpcController controller, TruncateTableRequest request)<a name="line.676"></a>
-<span class="sourceLineNo">677</span>      throws ServiceException {<a name="line.677"></a>
-<span class="sourceLineNo">678</span>    try {<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      long procId = master.truncateTable(<a name="line.679"></a>
-<span class="sourceLineNo">680</span>        ProtobufUtil.toTableName(request.getTableName()),<a name="line.680"></a>
-<span class="sourceLineNo">681</span>        request.getPreserveSplits(),<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        request.getNonceGroup(),<a name="line.682"></a>
-<span class="sourceLineNo">683</span>        request.getNonce());<a name="line.683"></a>
-<span class="sourceLineNo">684</span>      return TruncateTableResponse.newBuilder().setProcId(procId).build();<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    } catch (IOException ioe) {<a name="line.685"></a>
-<span class="sourceLineNo">686</span>      throw new ServiceException(ioe);<a name="line.686"></a>
-<span class="sourceLineNo">687</span>    }<a name="line.687"></a>
-<span class="sourceLineNo">688</span>  }<a name="line.688"></a>
-<span class="sourceLineNo">689</span><a name="line.689"></a>
-<span class="sourceLineNo">690</span>  @Override<a name="line.690"></a>
-<span class="sourceLineNo">691</span>  public DisableTableResponse disableTable(RpcController controller,<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      DisableTableRequest request) throws ServiceException {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    try {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>      long procId = master.disableTable(<a name="line.694"></a>
-<span class="sourceLineNo">695</span>        ProtobufUtil.toTableName(request.getTableName()),<a name="line.695"></a>
-<span class="sourceLineNo">696</span>        request.getNonceGroup(),<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        request.getNonce());<a name="line.697"></a>
-<span class="sourceLineNo">698</span>      return DisableTableResponse.newBuilder().setProcId(procId).build();<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    } catch (IOException ioe) {<a name="line.699"></a>
-<span class="sourceLineNo">700</span>      throw new ServiceException(ioe);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>    }<a name="line.701"></a>
-<span class="sourceLineNo">702</span>  }<a name="line.702"></a>
-<span class="sourceLineNo">703</span><a name="line.703"></a>
-<span class="sourceLineNo">704</span>  @Override<a name="line.704"></a>
-<span class="sourceLineNo">705</span>  public EnableCatalogJanitorResponse enableCatalogJanitor(RpcController c,<a name="line.705"></a>
-<span class="sourceLineNo">706</span>      EnableCatalogJanitorRequest req) throws ServiceException {<a name="line.706"></a>
-<span class="sourceLineNo">707</span>    rpcPreCheck("enableCatalogJanitor");<a name="line.707"></a>
-<span class="sourceLineNo">708</span>    return EnableCatalogJanitorResponse.newBuilder().setPrevValue(<a name="line.708"></a>
-<span class="sourceLineNo">709</span>      master.catalogJanitorChore.setEnabled(req.getEnable())).build();<a name="line.709"></a>
-<span class="sourceLineNo">710</span>  }<a name="line.710"></a>
-<span class="sourceLineNo">711</span><a name="line.711"></a>
-<span class="sourceLineNo">712</span>  @Override<a name="line.712"></a>
-<span class="sourceLineNo">713</span>  public SetCleanerChoreRunningResponse setCleanerChoreRunning(<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    RpcController c, SetCleanerChoreRunningRequest req) throws ServiceException {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    rpcPreCheck("setCleanerChoreRunning");<a name="line.715"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockHeartbeatRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockHeartbeatResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockService;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ClearDeadServersRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ClearDeadServersResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DecommissionRegionServersRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DecommissionRegionServersResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableCatalogJanitorRequest;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableCatalogJanitorResponse;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetClusterStatusRequest;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetClusterStatusResponse;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetLocksRequest;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetLocksResponse;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProceduresRequest;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProceduresResponse;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableStateRequest;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableStateResponse;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledRequest;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledResponse;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCleanerChoreEnabledRequest;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsCleanerChoreEnabledResponse;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsInMaintenanceModeRequest;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsInMaintenanceModeResponse;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsMasterRunningRequest;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsMasterRunningResponse;<a name="line.189"></a>
+<span class="sourceLineNo">190</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsNormalizerEnabledRequest;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsNormalizerEnabledResponse;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSplitOrMergeEnabledRequest;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSplitOrMergeEnabledResponse;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListDecommissionedRegionServersRequest;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListDecommissionedRegionServersResponse;<a name="line.199"></a>
+<span class="sourceLineNo">200</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceRequest;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceResponse;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByNamespaceRequest;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListTableNamesByNamespaceResponse;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampForRegionRequest;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampRequest;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MajorCompactionTimestampResponse;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.211"></a>
+<span class="sourceLineNo">212</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyTableRequest;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyTableResponse;<a name="line.217"></a>
+<span class="sourceLineNo">218</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.NormalizeRequest;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.NormalizeResponse;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.222"></a>
+<span class="sourceLineNo">223</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RecommissionRegionServerRequest;<a name="line.224"></a>
+<span class="sourceLineNo">225</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RecommissionRegionServerResponse;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCatalogScanRequest;<a name="line.228"></a>
+<span class="sourceLineNo">229</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCatalogScanResponse;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCleanerChoreRequest;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RunCleanerChoreResponse;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SecurityCapabilitiesRequest;<a name="line.232"></a>
+<span class="sourceLineNo">233</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SecurityCapabilitiesResponse;<a name="line.233"></a>
+<span class="sourceLineNo">234</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetCleanerChoreRunningRequest;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetCleanerChoreRunningResponse;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetNormalizerRunningRequest;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetNormalizerRunningResponse;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.240"></a>
+<span class="sourceLineNo">241</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQ

<TRUNCATED>

[28/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 50855bd..c25088e 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:20180709142918+00'00')
-/CreationDate (D:20180709144505+00'00')
+/ModDate (D:20180710170539+00'00')
+/CreationDate (D:20180710172156+00'00')
 >>
 endobj
 2 0 obj
@@ -613769,7 +613769,7 @@ endobj
 [3108 0 R /XYZ 0 177.99 null]
 endobj
 3113 0 obj
-<< /Length 9488
+<< /Length 14026
 >>
 stream
 q
@@ -613779,10 +613779,10 @@ q
 52.24 805.89 m
 543.04 805.89 l
 545.2491 805.89 547.04 804.0991 547.04 801.89 c
-547.04 728.93 l
-547.04 726.7209 545.2491 724.93 543.04 724.93 c
-52.24 724.93 l
-50.0309 724.93 48.24 726.7209 48.24 728.93 c
+547.04 684.71 l
+547.04 682.5009 545.2491 680.71 543.04 680.71 c
+52.24 680.71 l
+50.0309 680.71 48.24 682.5009 48.24 684.71 c
 48.24 801.89 l
 48.24 804.0991 50.0309 805.89 52.24 805.89 c
 h
@@ -613793,10 +613793,10 @@ f
 52.24 805.89 m
 543.04 805.89 l
 545.2491 805.89 547.04 804.0991 547.04 801.89 c
-547.04 728.93 l
-547.04 726.7209 545.2491 724.93 543.04 724.93 c
-52.24 724.93 l
-50.0309 724.93 48.24 726.7209 48.24 728.93 c
+547.04 684.71 l
+547.04 682.5009 545.2491 680.71 543.04 680.71 c
+52.24 680.71 l
+50.0309 680.71 48.24 682.5009 48.24 684.71 c
 48.24 801.89 l
 48.24 804.0991 50.0309 805.89 52.24 805.89 c
 h
@@ -613810,7 +613810,7 @@ Q
 BT
 59.24 783.065 Td
 /F4.0 11 Tf
-<242062696e2f6862617365207072652d757067726164652076616c69646174652d6370203c6a61723e202d7363616e7c3c636c61737365733e> Tj
+<242062696e2f6862617365207072652d757067726164652076616c69646174652d6370205b2d6a6172202e2e2e5d205b2d636c617373202e2e2e207c202d7461626c65202e2e2e207c202d636f6e6669675d> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -613832,7 +613832,7 @@ ET
 BT
 59.24 753.585 Td
 /F4.0 11 Tf
-<ca2d652020202020205472656174207761726e696e6773206173206572726f72732e> Tj
+<ca2d652020202020202020202020205472656174207761726e696e6773206173206572726f72732e> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -613843,7 +613843,7 @@ ET
 BT
 59.24 738.845 Td
 /F4.0 11 Tf
-<ca2d7363616e2020205363616e206a617220666f72206f62736572766572732e> Tj
+<ca2d6a6172203c6172673e202020204a61722066696c652f6469726563746f7279206f662074686520636f70726f636573736f722e> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -613851,12 +613851,45 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-0.4156 Tw
+BT
+59.24 724.105 Td
+/F4.0 11 Tf
+<ca2d7461626c65203c6172673e20205461626c6520636f70726f636573736f7228732920746f20636865636b2e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
 
 BT
-48.24 700.966 Td
+59.24 709.365 Td
+/F4.0 11 Tf
+<ca2d636c617373203c6172673e2020436f70726f636573736f7220636c6173732865732920746f20636865636b2e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+59.24 694.625 Td
+/F4.0 11 Tf
+<ca2d636f6e6669672020202020202020205363616e206a617220666f72206f62736572766572732e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+0.8069 Tw
+
+BT
+48.24 656.746 Td
 /F1.0 10.5 Tf
-[<54686520666972737420706172> 20.0195 <616d65746572206f662074686520746f6f6c2069732074686520>] TJ
+[<54686520636f2d70726f636573736f7220636c61737365732063616e206265206578706c696369746c79206465636c617265642062> 20.0195 <7920>] TJ
 ET
 
 
@@ -613866,12 +613899,12 @@ ET
 0.6941 0.1294 0.2745 scn
 0.6941 0.1294 0.2745 SCN
 
-0.4156 Tw
+0.8069 Tw
 
 BT
-234.412 700.966 Td
+324.0099 656.746 Td
 /F4.0 10.5 Tf
-<6a6172> Tj
+<2d636c617373> Tj
 ET
 
 
@@ -613881,12 +613914,12 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-0.4156 Tw
+0.8069 Tw
 
 BT
-250.162 700.966 Td
+355.5099 656.746 Td
 /F1.0 10.5 Tf
-<2066696c6520776869636820686f6c64732074686520636f2d70726f636573736f7220696d706c656d656e746174696f6e2e2046757274686572> Tj
+<206f7074696f6e2c206f7220746865792063616e206265206f627461696e65642066726f6d> Tj
 ET
 
 
@@ -613896,12 +613929,12 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-0.97 Tw
+2.073 Tw
 
 BT
-48.24 685.186 Td
+48.24 640.966 Td
 /F1.0 10.5 Tf
-[<706172> 20.0195 <616d65746572732063616e20626520>] TJ
+[<484261736520636f6e6669677572> 20.0195 <6174696f6e2062> 20.0195 <7920>] TJ
 ET
 
 
@@ -613911,12 +613944,12 @@ ET
 0.6941 0.1294 0.2745 scn
 0.6941 0.1294 0.2745 SCN
 
-0.97 Tw
+2.073 Tw
 
 BT
-146.6999 685.186 Td
+174.2322 640.966 Td
 /F4.0 10.5 Tf
-<2d7363616e> Tj
+<2d636f6e666967> Tj
 ET
 
 
@@ -613926,12 +613959,12 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-0.97 Tw
+2.073 Tw
 
 BT
-172.9499 685.186 Td
+210.9822 640.966 Td
 /F1.0 10.5 Tf
-<207768656e2074686520746f6f6c2077696c6c2073656172636820746865206a61722066696c6520666f7220> Tj
+[<206f7074696f6e2e2054> 29.7852 <61626c65206c6576656c20636f2d70726f636573736f72732063616e20626520616c736f20636865636b> 20.0195 <65642062> 20.0195 <7920>] TJ
 ET
 
 
@@ -613941,12 +613974,12 @@ ET
 0.6941 0.1294 0.2745 scn
 0.6941 0.1294 0.2745 SCN
 
-0.97 Tw
+2.073 Tw
 
 BT
-385.8254 685.186 Td
+515.54 640.966 Td
 /F4.0 10.5 Tf
-<436f70726f636573736f72> Tj
+<2d7461626c65> Tj
 ET
 
 
@@ -613956,12 +613989,40 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
-0.97 Tw
+2.073 Tw
 
 BT
-443.5754 685.186 Td
+547.04 640.966 Td
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+2.0953 Tw
+
+BT
+48.24 625.186 Td
 /F1.0 10.5 Tf
-<20696d706c656d656e746174696f6e73206f72> Tj
+[<6f7074696f6e2e2054686520746f6f6c20736561726368657320666f7220636f2d70726f636573736f7273206f6e2069747320636c617373706174682c206275742069742063616e20626520657874656e6465642062> 20.0195 <792074686520>] TJ
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.6941 0.1294 0.2745 scn
+0.6941 0.1294 0.2745 SCN
+
+2.0953 Tw
+
+BT
+526.04 625.186 Td
+/F4.0 10.5 Tf
+<2d6a6172> Tj
 ET
 
 
@@ -613971,32 +614032,101 @@ ET
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
+2.0953 Tw
+
 BT
-48.24 669.406 Td
+547.04 625.186 Td
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+2.1328 Tw
+
+BT
+48.24 609.406 Td
 /F1.0 10.5 Tf
-<74686520> Tj
+<6f7074696f6e2e20497420697320706f737369626c6520746f2074657374206d756c7469706c6520636c61737365732077697468206d756c7469706c6520> Tj
 ET
 
+
+0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
 0.6941 0.1294 0.2745 scn
 0.6941 0.1294 0.2745 SCN
 
+2.1328 Tw
+
 BT
-66.93 669.406 Td
+356.7642 609.406 Td
 /F4.0 10.5 Tf
-<636c6173736573> Tj
+<2d636c617373> Tj
 ET
 
+
+0.0 Tw
 0.0 0.0 0.0 SCN
 0.0 0.0 0.0 scn
 0.2 0.2 0.2 scn
 0.2 0.2 0.2 SCN
 
+2.1328 Tw
+
 BT
-103.68 669.406 Td
+388.2642 609.406 Td
 /F1.0 10.5 Tf
-<2063616e206265206578706c696369746c7920676976656e2e> Tj
+<2c206d756c7469706c65207461626c65732077697468206d756c7469706c65> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.6941 0.1294 0.2745 scn
+0.6941 0.1294 0.2745 SCN
+
+BT
+48.24 593.626 Td
+/F4.0 10.5 Tf
+<2d7461626c65> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+79.74 593.626 Td
+/F1.0 10.5 Tf
+<206f7074696f6e732061732077656c6c20617320616464696e67206d756c7469706c65206a61727320746f2074686520636c617373706174682077697468206d756c7469706c6520> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.6941 0.1294 0.2745 scn
+0.6941 0.1294 0.2745 SCN
+
+BT
+427.2165 593.626 Td
+/F4.0 10.5 Tf
+<2d6a6172> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+448.2165 593.626 Td
+/F1.0 10.5 Tf
+<206f7074696f6e732e> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -614007,7 +614137,7 @@ ET
 2.953 Tw
 
 BT
-48.24 641.626 Td
+48.24 565.846 Td
 /F1.0 10.5 Tf
 <54686520746f6f6c2063616e207265706f7274206572726f727320616e64207761726e696e67732e204572726f7273206d65616e207468617420484261736520776f6ed5742062652061626c6520746f206c6f616420746865> Tj
 ET
@@ -614022,7 +614152,7 @@ ET
 0.4429 Tw
 
 BT
-48.24 625.846 Td
+48.24 550.066 Td
 /F1.0 10.5 Tf
 [<636f70726f636573736f722c206265636175736520697420697320696e636f6d70617469626c652077697468207468652063757272656e742076657273696f6e206f662048426173652e2057> 49.8047 <61726e696e6773206d65616e207468617420746865>] TJ
 ET
@@ -614037,7 +614167,7 @@ ET
 1.2296 Tw
 
 BT
-48.24 610.066 Td
+48.24 534.286 Td
 /F1.0 10.5 Tf
 <636f2d70726f636573736f72732063616e206265206c6f616465642c20627574207468657920776f6ed57420776f726b2061732065787065637465642e20496620> Tj
 ET
@@ -614052,7 +614182,7 @@ ET
 1.2296 Tw
 
 BT
-384.5145 610.066 Td
+384.5145 534.286 Td
 /F4.0 10.5 Tf
 <2d65> Tj
 ET
@@ -614067,7 +614197,7 @@ ET
 1.2296 Tw
 
 BT
-395.0145 610.066 Td
+395.0145 534.286 Td
 /F1.0 10.5 Tf
 <206f7074696f6e20697320676976656e2c207468656e2074686520746f6f6c> Tj
 ET
@@ -614080,7 +614210,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 594.286 Td
+48.24 518.506 Td
 /F1.0 10.5 Tf
 <77696c6c20616c736f206661696c20666f72207761726e696e67732e> Tj
 ET
@@ -614091,7 +614221,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 566.506 Td
+48.24 490.726 Td
 /F1.0 10.5 Tf
 <506c65617365206e6f74652074686174207468697320746f6f6c2063616e6e6f742076616c696461746520657665727920617370656374206f66206a61722066696c65732c206974206a75737420646f657320736f6d652073746174696320636865636b732e> Tj
 ET
@@ -614102,7 +614232,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 538.726 Td
+48.24 462.946 Td
 /F1.0 10.5 Tf
 [<46> 40.0391 <6f72206578616d706c653a>] TJ
 ET
@@ -614111,28 +614241,28 @@ ET
 0.0 0.0 0.0 scn
 q
 0.9608 0.9608 0.9608 scn
-52.24 522.91 m
-543.04 522.91 l
-545.2491 522.91 547.04 521.1191 547.04 518.91 c
-547.04 475.43 l
-547.04 473.2209 545.2491 471.43 543.04 471.43 c
-52.24 471.43 l
-50.0309 471.43 48.24 473.2209 48.24 475.43 c
-48.24 518.91 l
-48.24 521.1191 50.0309 522.91 52.24 522.91 c
+52.24 447.13 m
+543.04 447.13 l
+545.2491 447.13 547.04 445.3391 547.04 443.13 c
+547.04 399.65 l
+547.04 397.4409 545.2491 395.65 543.04 395.65 c
+52.24 395.65 l
+50.0309 395.65 48.24 397.4409 48.24 399.65 c
+48.24 443.13 l
+48.24 445.3391 50.0309 447.13 52.24 447.13 c
 h
 f
 0.8 0.8 0.8 SCN
 0.75 w
-52.24 522.91 m
-543.04 522.91 l
-545.2491 522.91 547.04 521.1191 547.04 518.91 c
-547.04 475.43 l
-547.04 473.2209 545.2491 471.43 543.04 471.43 c
-52.24 471.43 l
-50.0309 471.43 48.24 473.2209 48.24 475.43 c
-48.24 518.91 l
-48.24 521.1191 50.0309 522.91 52.24 522.91 c
+52.24 447.13 m
+543.04 447.13 l
+545.2491 447.13 547.04 445.3391 547.04 443.13 c
+547.04 399.65 l
+547.04 397.4409 545.2491 395.65 543.04 395.65 c
+52.24 395.65 l
+50.0309 395.65 48.24 397.4409 48.24 399.65 c
+48.24 443.13 l
+48.24 445.3391 50.0309 447.13 52.24 447.13 c
 h
 S
 Q
@@ -614140,9 +614270,9 @@ Q
 0.2 0.2 0.2 SCN
 
 BT
-59.24 500.085 Td
+59.24 424.305 Td
 /F4.0 11 Tf
-<242062696e2f6862617365207072652d757067726164652076616c69646174652d6370206d792d636f70726f636573736f722e6a6172204d794d61737465724f62736572766572> Tj
+<242062696e2f6862617365207072652d757067726164652076616c69646174652d6370202d6a6172206d792d636f70726f636573736f722e6a6172202d636c617373204d794d61737465724f62736572766572> Tj
 ET
 
 0.0 0.0 0.0 SCN
@@ -614151,8 +614281,52 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-59.24 485.345 Td
+59.24 409.565 Td
 /F4.0 11 Tf
+<2d636c617373204d79526567696f6e4f62736572766572> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+48.24 371.686 Td
+/F1.0 10.5 Tf
+<49742076616c69646174657320> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.6941 0.1294 0.2745 scn
+0.6941 0.1294 0.2745 SCN
+
+BT
+106.2 371.686 Td
+/F4.0 10.5 Tf
+<4d794d61737465724f62736572766572> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+190.2 371.686 Td
+/F1.0 10.5 Tf
+<20616e6420> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.6941 0.1294 0.2745 scn
+0.6941 0.1294 0.2745 SCN
+
+BT
+214.749 371.686 Td
+/F4.0 10.5 Tf
 <4d79526567696f6e4f62736572766572> Tj
 ET
 
@@ -614162,7 +614336,111 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 440.746 Td
+298.749 371.686 Td
+/F1.0 10.5 Tf
+<20636c617373657320776869636820617265206c6f636174656420696e20> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.6941 0.1294 0.2745 scn
+0.6941 0.1294 0.2745 SCN
+
+BT
+442.7985 371.686 Td
+/F4.0 10.5 Tf
+<6d792d636f70726f636573736f722e6a6172> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+537.2985 371.686 Td
+/F1.0 10.5 Tf
+<2e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+q
+0.9608 0.9608 0.9608 scn
+52.24 355.87 m
+543.04 355.87 l
+545.2491 355.87 547.04 354.0791 547.04 351.87 c
+547.04 323.13 l
+547.04 320.9209 545.2491 319.13 543.04 319.13 c
+52.24 319.13 l
+50.0309 319.13 48.24 320.9209 48.24 323.13 c
+48.24 351.87 l
+48.24 354.0791 50.0309 355.87 52.24 355.87 c
+h
+f
+0.8 0.8 0.8 SCN
+0.75 w
+52.24 355.87 m
+543.04 355.87 l
+545.2491 355.87 547.04 354.0791 547.04 351.87 c
+547.04 323.13 l
+547.04 320.9209 545.2491 319.13 543.04 319.13 c
+52.24 319.13 l
+50.0309 319.13 48.24 320.9209 48.24 323.13 c
+48.24 351.87 l
+48.24 354.0791 50.0309 355.87 52.24 355.87 c
+h
+S
+Q
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+59.24 333.045 Td
+/F4.0 11 Tf
+<242062696e2f6862617365207072652d757067726164652076616c69646174652d6370202d7461626c65202e2a> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+48.24 295.166 Td
+/F1.0 10.5 Tf
+<49742076616c696461746573206576657279207461626c65206c6576656c20636f2d70726f636573736f727320776865726520746865207461626c65206e616d65206d61746368657320746f20> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.6941 0.1294 0.2745 scn
+0.6941 0.1294 0.2745 SCN
+
+BT
+430.6185 295.166 Td
+/F4.0 10.5 Tf
+<2e2a> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+441.1185 295.166 Td
+/F1.0 10.5 Tf
+<20726567756c61722065787072657373696f6e2e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2 0.2 0.2 scn
+0.2 0.2 0.2 SCN
+
+BT
+48.24 260.666 Td
 /F2.0 13 Tf
 <3134392e32322e322e2044617461426c6f636b456e636f64696e672076616c69646174696f6e> Tj
 ET
@@ -614175,7 +614453,7 @@ ET
 0.9199 Tw
 
 BT
-48.24 414.186 Td
+48.24 234.106 Td
 /F1.0 10.5 Tf
 <484261736520322e302072656d6f76656420> Tj
 ET
@@ -614190,7 +614468,7 @@ ET
 0.9199 Tw
 
 BT
-149.6157 414.186 Td
+149.6157 234.106 Td
 /F4.0 10.5 Tf
 <5052454649585f54524545> Tj
 ET
@@ -614205,7 +614483,7 @@ ET
 0.9199 Tw
 
 BT
-207.3657 414.186 Td
+207.3657 234.106 Td
 /F1.0 10.5 Tf
 [<204461746120426c6f636b20456e636f64696e672066726f6d20636f6c756d6e2066616d696c6965732e2054> 29.7852 <6f207665726966792074686174206e6f6e65206f66>] TJ
 ET
@@ -614220,7 +614498,7 @@ ET
 0.9613 Tw
 
 BT
-48.24 398.406 Td
+48.24 218.326 Td
 /F1.0 10.5 Tf
 <74686520636f6c756d6e2066616d696c69657320617265207573696e6720696e636f6d70617469626c65204461746120426c6f636b20456e636f64696e677320696e2074686520636c75737465722072756e2074686520666f6c6c6f77696e67> Tj
 ET
@@ -614233,7 +614511,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 382.626 Td
+48.24 202.546 Td
 /F1.0 10.5 Tf
 <636f6d6d616e642e> Tj
 ET
@@ -614242,28 +614520,28 @@ ET
 0.0 0.0 0.0 scn
 q
 0.9608 0.9608 0.9608 scn
-52.24 366.81 m
-543.04 366.81 l
-545.2491 366.81 547.04 365.0191 547.04 362.81 c
-547.04 334.07 l
-547.04 331.8609 545.2491 330.07 543.04 330.07 c
-52.24 330.07 l
-50.0309 330.07 48.24 331.8609 48.24 334.07 c
-48.24 362.81 l
-48.24 365.0191 50.0309 366.81 52.24 366.81 c
+52.24 186.73 m
+543.04 186.73 l
+545.2491 186.73 547.04 184.9391 547.04 182.73 c
+547.04 153.99 l
+547.04 151.7809 545.2491 149.99 543.04 149.99 c
+52.24 149.99 l
+50.0309 149.99 48.24 151.7809 48.24 153.99 c
+48.24 182.73 l
+48.24 184.9391 50.0309 186.73 52.24 186.73 c
 h
 f
 0.8 0.8 0.8 SCN
 0.75 w
-52.24 366.81 m
-543.04 366.81 l
-545.2491 366.81 547.04 365.0191 547.04 362.81 c
-547.04 334.07 l
-547.04 331.8609 545.2491 330.07 543.04 330.07 c
-52.24 330.07 l
-50.0309 330.07 48.24 331.8609 48.24 334.07 c
-48.24 362.81 l
-48.24 365.0191 50.0309 366.81 52.24 366.81 c
+52.24 186.73 m
+543.04 186.73 l
+545.2491 186.73 547.04 184.9391 547.04 182.73 c
+547.04 153.99 l
+547.04 151.7809 545.2491 149.99 543.04 149.99 c
+52.24 149.99 l
+50.0309 149.99 48.24 151.7809 48.24 153.99 c
+48.24 182.73 l
+48.24 184.9391 50.0309 186.73 52.24 186.73 c
 h
 S
 Q
@@ -614271,7 +614549,7 @@ Q
 0.2 0.2 0.2 SCN
 
 BT
-59.24 343.985 Td
+59.24 163.905 Td
 /F4.0 11 Tf
 <242062696e2f6862617365207072652d757067726164652076616c69646174652d646265> Tj
 ET
@@ -614284,7 +614562,7 @@ ET
 0.4996 Tw
 
 BT
-48.24 306.106 Td
+48.24 126.026 Td
 /F1.0 10.5 Tf
 [<5468697320636865636b2076616c69646174657320616c6c20636f6c756d6e2066616d696c69657320616e64207072696e74206f757420616e> 20.0195 <7920696e636f6d7061746962696c69746965732e2054> 29.7852 <6f206368616e676520>] TJ
 ET
@@ -614299,7 +614577,7 @@ ET
 0.4996 Tw
 
 BT
-489.29 306.106 Td
+489.29 126.026 Td
 /F4.0 10.5 Tf
 <5052454649585f54524545> Tj
 ET
@@ -614314,7 +614592,7 @@ ET
 0.4996 Tw
 
 BT
-547.04 306.106 Td
+547.04 126.026 Td
 ET
 
 
@@ -614325,7 +614603,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-48.24 290.326 Td
+48.24 110.246 Td
 /F1.0 10.5 Tf
 <656e636f64696e6720746f20737570706f72746564206f6e6520636865636b20> Tj
 ET
@@ -614336,7 +614614,7 @@ ET
 0.2588 0.5451 0.7922 SCN
 
 BT
-215.6205 290.326 Td
+215.6205 110.246 Td
 /F3.0 10.5 Tf
 <7072656669782d74726565> Tj
 ET
@@ -614347,7 +614625,7 @@ ET
 0.2588 0.5451 0.7922 SCN
 
 BT
-266.3775 290.326 Td
+266.3775 110.246 Td
 /F1.0 10.5 Tf
 <20656e636f64696e672072656d6f766564> Tj
 ET
@@ -614358,7 +614636,7 @@ ET
 0.2 0.2 0.2 SCN
 
 BT
-362.3055 290.326 Td
+362.3055 110.246 Td
 /F1.0 10.5 Tf
 <2e> Tj
 ET
@@ -614411,13 +614689,13 @@ endobj
 >>
 endobj
 3115 0 obj
-[3114 0 R /XYZ 0 459.43 null]
+[3114 0 R /XYZ 0 279.35 null]
 endobj
 3116 0 obj
 << /Border [0 0 0]
 /Dest (upgrade2.0.prefix-tree.removed)
 /Subtype /Link
-/Rect [215.6205 287.26 266.3775 301.54]
+/Rect [215.6205 107.18 266.3775 121.46]
 /Type /Annot
 >>
 endobj
@@ -614425,7 +614703,7 @@ endobj
 << /Border [0 0 0]
 /Dest (upgrade2.0.prefix-tree.removed)
 /Subtype /Link
-/Rect [266.3775 287.26 362.3055 301.54]
+/Rect [266.3775 107.18 362.3055 121.46]
 /Type /Annot
 >>
 endobj
@@ -854303,2165 +854581,2165 @@ xref
 0008741200 00000 n 
 0008741248 00000 n 
 0008741296 00000 n 
-0008750839 00000 n 
-0008751241 00000 n 
-0008751289 00000 n 
-0008751436 00000 n 
-0008751583 00000 n 
-0008757605 00000 n 
-0008758012 00000 n 
-0008758060 00000 n 
-0008758108 00000 n 
-0008758376 00000 n 
-0008758503 00000 n 
-0008758551 00000 n 
-0008758802 00000 n 
-0008758997 00000 n 
-0008770977 00000 n 
-0008771383 00000 n 
-0008771431 00000 n 
-0008771479 00000 n 
-0008771599 00000 n 
-0008791444 00000 n 
-0008791831 00000 n 
-0008791880 00000 n 
-0008791929 00000 n 
-0008804610 00000 n 
-0008805047 00000 n 
-0008805262 00000 n 
-0008805310 00000 n 
-0008805464 00000 n 
-0008805752 00000 n 
-0008805801 00000 n 
-0008805850 00000 n 
-0008819410 00000 n 
-0008819803 00000 n 
-0008819852 00000 n 
-0008819982 00000 n 
-0008820031 00000 n 
-0008833373 00000 n 
-0008833766 00000 n 
-0008833885 00000 n 
-0008833933 00000 n 
-0008835934 00000 n 
-0008836282 00000 n 
-0008849569 00000 n 
-0008850024 00000 n 
-0008850072 00000 n 
-0008850303 00000 n 
-0008850351 00000 n 
-0008850586 00000 n 
-0008850819 00000 n 
-0008851066 00000 n 
-0008851312 00000 n 
-0008851361 00000 n 
-0008851410 00000 n 
-0008867824 00000 n 
-0008868226 00000 n 
-0008868404 00000 n 
-0008868453 00000 n 
-0008868502 00000 n 
-0008874801 00000 n 
-0008875149 00000 n 
-0008875197 00000 n 
-0008882920 00000 n 
-0008883268 00000 n 
-0008884451 00000 n 
-0008884799 00000 n 
-0008895578 00000 n 
-0008895976 00000 n 
-0008896024 00000 n 
-0008896072 00000 n 
-0008896239 00000 n 
-0008896365 00000 n 
-0008896495 00000 n 
-0008896543 00000 n 
-0008896591 00000 n 
-0008896639 00000 n 
-0008931745 00000 n 
-0008932106 00000 n 
-0008932154 00000 n 
-0008932202 00000 n 
-0008932250 00000 n 
-0009089391 00000 n 
-0009093011 00000 n 
-0009093708 00000 n 
-0009094083 00000 n 
-0009188233 00000 n 
-0009274554 00000 n 
-0009275572 00000 n 
-0009275948 00000 n 
-0009346465 00000 n 
-0009358946 00000 n 
-0009359344 00000 n 
-0009359392 00000 n 
-0009359585 00000 n 
-0009359716 00000 n 
-0009359764 00000 n 
-0009359958 00000 n 
-0009371463 00000 n 
-0009371843 00000 n 
-0009371980 00000 n 
-0009424452 00000 n 
-0009430118 00000 n 
-0009430506 00000 n 
-0009430556 00000 n 
-0009439805 00000 n 
-0009440211 00000 n 
-0009440345 00000 n 
-0009440394 00000 n 
-0009452958 00000 n 
-0009453360 00000 n 
-0009453556 00000 n 
-0009453751 00000 n 
-0009453800 00000 n 
-0009460465 00000 n 
-0009460872 00000 n 
-0009460920 00000 n 
-0009617007 00000 n 
-0009619028 00000 n 
-0009619078 00000 n 
-0009619776 00000 n 
-0009619999 00000 n 
-0009635361 00000 n 
-0009635754 00000 n 
-0009635803 00000 n 
-0009636000 00000 n 
-0009636049 00000 n 
-0009650553 00000 n 
-0009650946 00000 n 
-0009650994 00000 n 
-0009651042 00000 n 
-0009651174 00000 n 
-0009663300 00000 n 
-0009663674 00000 n 
-0009663722 00000 n 
-0009663770 00000 n 
-0009663818 00000 n 
-0009673286 00000 n 
-0009673634 00000 n 
-0009682068 00000 n 
-0009682429 00000 n 
-0009682477 00000 n 
-0009693123 00000 n 
-0009693471 00000 n 
-0009710444 00000 n 
-0009710818 00000 n 
-0009710866 00000 n 
-0009710914 00000 n 
-0009723957 00000 n 
-0009724386 00000 n 
-0009724434 00000 n 
-0009724554 00000 n 
-0009724684 00000 n 
-0009724821 00000 n 
-0009724869 00000 n 
-0009725387 00000 n 
-0009725514 00000 n 
-0009725643 00000 n 
-0009725692 00000 n 
-0009733580 00000 n 
-0009733928 00000 n 
-0009743507 00000 n 
-0009743881 00000 n 
-0009743929 00000 n 
-0009743978 00000 n 
-0009758583 00000 n 
-0009758957 00000 n 
-0009759005 00000 n 
-0009772988 00000 n 
-0009773368 00000 n 
-0009773415 00000 n 
-0009773608 00000 n 
-0009784270 00000 n 
-0009784644 00000 n 
-0009784693 00000 n 
-0009801437 00000 n 
-0009801817 00000 n 
-0009801865 00000 n 
-0009802058 00000 n 
-0009803517 00000 n 
-0009803865 00000 n 
-0009812242 00000 n 
-0009812627 00000 n 
-0009812675 00000 n 
-0009812879 00000 n 
-0009812927 00000 n 
-0009812975 00000 n 
-0009813679 00000 n 
-0009813727 00000 n 
-0009813775 00000 n 
-0009813823 00000 n 
-0009814025 00000 n 
-0009814073 00000 n 
-0009814198 00000 n 
-0009815959 00000 n 
-0009816335 00000 n 
-0009816383 00000 n 
-0009816505 00000 n 
-0009816623 00000 n 
-0009829105 00000 n 
-0009829479 00000 n 
-0009829527 00000 n 
-0009829575 00000 n 
-0009829623 00000 n 
-0009838874 00000 n 
-0009839248 00000 n 
-0009839296 00000 n 
-0009839344 00000 n 
-0009839392 00000 n 
-0009839440 00000 n 
-0009850171 00000 n 
-0009850595 00000 n 
-0009850643 00000 n 
-0009850789 00000 n 
-0009850837 00000 n 
-0009850886 00000 n 
-0009851018 00000 n 
-0009851149 00000 n 
-0009863147 00000 n 
-0009863495 00000 n 
-0009867789 00000 n 
-0009868218 00000 n 
-0009868266 00000 n 
-0009868392 00000 n 
-0009868518 00000 n 
-0009868724 00000 n 
-0009868853 00000 n 
-0009868980 00000 n 
-0009881535 00000 n 
-0009881992 00000 n 
-0009882040 00000 n 
-0009882088 00000 n 
-0009882136 00000 n 
-0009882260 00000 n 
-0009882384 00000 n 
-0009882512 00000 n 
-0009882639 00000 n 
-0009882823 00000 n 
-0009882940 00000 n 
-0009883074 00000 n 
-0009883122 00000 n 
-0009883236 00000 n 
-0009883363 00000 n 
-0009883411 00000 n 
-0009883529 00000 n 
-0009883656 00000 n 
-0009901359 00000 n 
-0009901797 00000 n 
-0009901845 00000 n 
-0009902590 00000 n 
-0009902721 00000 n 
-0009902946 00000 n 
-0009903090 00000 n 
-0009903138 00000 n 
-0009903186 00000 n 
-0009903318 00000 n 
-0009903468 00000 n 
-0009903623 00000 n 
-0009915496 00000 n 
-0009915885 00000 n 
-0009915933 00000 n 
-0009915981 00000 n 
-0009916123 00000 n 
-0009916257 00000 n 
-0009929165 00000 n 
-0009929626 00000 n 
-0009929753 00000 n 
-0009929801 00000 n 
-0009929849 00000 n 
-0009929989 00000 n 
-0009930134 00000 n 
-0009930258 00000 n 
-0009930306 00000 n 
-0009930432 00000 n 
-0009930580 00000 n 
-0009930715 00000 n 
-0009930763 00000 n 
-0009930906 00000 n 
-0009931054 00000 n 
-0009931186 00000 n 
-0009945039 00000 n 
-0009945400 00000 n 
-0009945448 00000 n 
-0009946061 00000 n 
-0009962262 00000 n 
-0009962678 00000 n 
-0009962726 00000 n 
-0009962940 00000 n 
-0009963151 00000 n 
-0009994190 00000 n 
-0009994577 00000 n 
-0010006432 00000 n 
-0010006806 00000 n 
-0010006854 00000 n 
-0010006902 00000 n 
-0010006950 00000 n 
-0010006998 00000 n 
-0010007046 00000 n 
-0010016972 00000 n 
-0010017333 00000 n 
-0010017381 00000 n 
-0010028254 00000 n 
-0010028643 00000 n 
-0010028691 00000 n 
-0010028913 00000 n 
-0010029134 00000 n 
-0010039589 00000 n 
-0010039956 00000 n 
-0010040207 00000 n 
-0010049618 00000 n 
-0010049966 00000 n 
-0010062652 00000 n 
-0010063000 00000 n 
-0010073914 00000 n 
-0010074276 00000 n 
-0010075624 00000 n 
-0010075972 00000 n 
-0010076020 00000 n 
-0010087737 00000 n 
-0010088189 00000 n 
-0010088237 00000 n 
-0010088553 00000 n 
-0010088733 00000 n 
-0010088860 00000 n 
-0010088980 00000 n 
-0010089028 00000 n 
-0010089214 00000 n 
-0010089262 00000 n 
-0010089819 00000 n 
-0010089994 00000 n 
-0010090166 00000 n 
-0010090214 00000 n 
-0010090382 00000 n 
-0010090430 00000 n 
-0010090754 00000 n 
-0010090951 00000 n 
-0010103446 00000 n 
-0010103820 00000 n 
-0010103868 00000 n 
-0010113878 00000 n 
-0010114293 00000 n 
-0010114341 00000 n 
-0010114655 00000 n 
-0010114968 00000 n 
-0010117338 00000 n 
-0010117723 00000 n 
-0010117771 00000 n 
-0010117963 00000 n 
-0010118157 00000 n 
-0010118326 00000 n 
-0010132323 00000 n 
-0010132739 00000 n 
-0010132787 00000 n 
-0010132835 00000 n 
-0010133303 00000 n 
-0010133351 00000 n 
-0010133485 00000 n 
-0010133533 00000 n 
-0010133581 00000 n 
-0010133755 00000 n 
-0010143756 00000 n 
-0010144130 00000 n 
-0010144178 00000 n 
-0010144225 00000 n 
-0010144273 00000 n 
-0010153848 00000 n 
-0010154292 00000 n 
-0010154340 00000 n 
-0010154565 00000 n 
-0010154789 00000 n 
-0010154837 00000 n 
-0010154978 00000 n 
-0010155027 00000 n 
-0010155153 00000 n 
-0010155351 00000 n 
-0010165356 00000 n 
-0010165771 00000 n 
-0010165819 00000 n 
-0010165867 00000 n 
-0010165987 00000 n 
-0010166036 00000 n 
-0010166085 00000 n 
-0010166211 00000 n 
-0010166260 00000 n 
-0010166309 00000 n 
-0010177804 00000 n 
-0010178206 00000 n 
-0010178254 00000 n 
-0010178387 00000 n 
-0010178516 00000 n 
-0010178564 00000 n 
-0010178895 00000 n 
-0010178943 00000 n 
-0010192126 00000 n 
-0010192532 00000 n 
-0010192579 00000 n 
-0010192627 00000 n 
-0010192753 00000 n 
-0010195008 00000 n 
-0010195397 00000 n 
-0010195445 00000 n 
-0010195963 00000 n 
-0010196155 00000 n 
-0010196344 00000 n 
-0010197833 00000 n 
-0010198226 00000 n 
-0010198274 00000 n 
-0010198397 00000 n 
-0010198446 00000 n 
-0010215623 00000 n 
-0010215997 00000 n 
-0010216046 00000 n 
-0010233042 00000 n 
-0010233493 00000 n 
-0010233628 00000 n 
-0010233762 00000 n 
-0010233896 00000 n 
-0010234085 00000 n 
-0010234259 00000 n 
-0010234454 00000 n 
-0010246038 00000 n 
-0010246427 00000 n 
-0010246639 00000 n 
-0010246842 00000 n 
-0010261141 00000 n 
-0010261552 00000 n 
-0010261687 00000 n 
-0010261822 00000 n 
-0010261957 00000 n 
-0010275821 00000 n 
-0010276232 00000 n 
-0010276410 00000 n 
-0010276607 00000 n 
-0010276809 00000 n 
-0010290400 00000 n 
-0010290887 00000 n 
-0010291077 00000 n 
-0010291266 00000 n 
-0010291460 00000 n 
-0010291653 00000 n 
-0010291844 00000 n 
-0010292037 00000 n 
-0010292229 00000 n 
-0010292277 00000 n 
-0010292412 00000 n 
-0010292547 00000 n 
-0010292682 00000 n 
-0010295190 00000 n 
-0010295570 00000 n 
-0010295700 00000 n 
-0010299268 00000 n 
-0010299653 00000 n 
-0010299701 00000 n 
-0010299906 00000 n 
-0010300088 00000 n 
-0010300268 00000 n 
-0010309336 00000 n 
-0010309748 00000 n 
-0010309796 00000 n 
-0010309969 00000 n 
-0010310140 00000 n 
-0010310310 00000 n 
-0010312389 00000 n 
-0010312765 00000 n 
-0010312813 00000 n 
-0010313012 00000 n 
-0010313163 00000 n 
-0010315713 00000 n 
-0010316107 00000 n 
-0010316155 00000 n 
-0010316324 00000 n 
-0010316372 00000 n 
-0010316526 00000 n 
-0010316574 00000 n 
-0010316743 00000 n 
-0010316873 00000 n 
-0010329748 00000 n 
-0010330155 00000 n 
-0010330203 00000 n 
-0010330328 00000 n 
-0010330376 00000 n 
-0010330508 00000 n 
-0010330556 00000 n 
-0010330688 00000 n 
-0010330902 00000 n 
-0010341737 00000 n 
-0010342117 00000 n 
-0010342165 00000 n 
-0010342302 00000 n 
-0010342350 00000 n 
-0010342912 00000 n 
-0010367270 00000 n 
-0010367703 00000 n 
-0010367896 00000 n 
-0010368030 00000 n 
-0010368086 00000 n 
-0010368270 00000 n 
-0010368326 00000 n 
-0010368509 00000 n 
-0010368565 00000 n 
-0010381403 00000 n 
-0010381796 00000 n 
-0010381851 00000 n 
-0010381985 00000 n 
-0010382033 00000 n 
-0010382081 00000 n 
-0010382129 00000 n 
-0010382177 00000 n 
-0010382225 00000 n 
-0010393964 00000 n 
-0010394338 00000 n 
-0010394386 00000 n 
-0010394434 00000 n 
-0010394482 00000 n 
-0010408944 00000 n 
-0010409318 00000 n 
-0010409366 00000 n 
-0010409414 00000 n 
-0010409462 00000 n 
-0010409982 00000 n 
-0010417324 00000 n 
-0010417672 00000 n 
-0010417720 00000 n 
-0010417768 00000 n 
-0010417816 00000 n 
-0010417864 00000 n 
-0010443537 00000 n 
-0010443898 00000 n 
-0010443946 00000 n 
-0010444367 00000 n 
-0010460984 00000 n 
-0010461360 00000 n 
-0010476986 00000 n 
-0010477379 00000 n 
-0010477427 00000 n 
-0010477627 00000 n 
-0010477675 00000 n 
-0010477723 00000 n 
-0010494612 00000 n 
-0010495032 00000 n 
-0010495227 00000 n 
-0010495410 00000 n 
-0010495458 00000 n 
-0010495641 00000 n 
-0010495823 00000 n 
-0010508001 00000 n 
-0010508349 00000 n 
-0010520505 00000 n 
-0010520898 00000 n 
-0010520947 00000 n 
-0010521361 00000 n 
-0010521410 00000 n 
-0010521546 00000 n 
-0010521595 00000 n 
-0010537424 00000 n 
-0010537785 00000 n 
-0010547764 00000 n 
-0010548151 00000 n 
-0010548199 00000 n 
-0010548880 00000 n 
-0010548928 00000 n 
-0010548976 00000 n 
-0010549024 00000 n 
-0010571408 00000 n 
-0010571797 00000 n 
-0010571845 00000 n 
-0010572047 00000 n 
-0010572186 00000 n 
-0010572234 00000 n 
-0010572926 00000 n 
-0010572974 00000 n 
-0010598392 00000 n 
-0010598753 00000 n 
-0010598801 00000 n 
-0010598849 00000 n 
-0010598897 00000 n 
-0010598945 00000 n 
-0010610202 00000 n 
-0010610617 00000 n 
-0010610665 00000 n 
-0010610713 00000 n 
-0010610761 00000 n 
-0010610809 00000 n 
-0010610858 00000 n 
-0010611086 00000 n 
-0010611313 00000 n 
-0010620893 00000 n 
-0010621299 00000 n 
-0010621347 00000 n 
-0010621395 00000 n 
-0010621590 00000 n 
-0010621638 00000 n 
-0010633700 00000 n 
-0010634093 00000 n 
-0010634141 00000 n 
-0010634352 00000 n 
-0010634400 00000 n 
-0010635178 00000 n 
-0010635379 00000 n 
-0010635427 00000 n 
-0010635475 00000 n 
-0010635523 00000 n 
-0010636117 00000 n 
-0010651026 00000 n 
-0010651455 00000 n 
-0010651503 00000 n 
-0010651688 00000 n 
-0010651860 00000 n 
-0010652040 00000 n 
-0010652218 00000 n 
-0010652266 00000 n 
-0010652404 00000 n 
-0010667062 00000 n 
-0010667529 00000 n 
-0010667657 00000 n 
-0010667876 00000 n 
-0010667925 00000 n 
-0010668051 00000 n 
-0010668181 00000 n 
-0010668230 00000 n 
-0010668279 00000 n 
-0010668951 00000 n 
-0010669121 00000 n 
-0010669291 00000 n 
-0010682449 00000 n 
-0010682902 00000 n 
-0010683092 00000 n 
-0010683140 00000 n 
-0010683188 00000 n 
-0010683383 00000 n 
-0010683569 00000 n 
-0010683617 00000 n 
-0010683849 00000 n 
-0010683897 00000 n 
-0010684088 00000 n 
-0010684283 00000 n 
-0010684331 00000 n 
-0010699441 00000 n 
-0010699847 00000 n 
-0010700038 00000 n 
-0010708408 00000 n 
-0010708756 00000 n 
-0010719037 00000 n 
-0010719398 00000 n 
-0010719446 00000 n 
-0010719494 00000 n 
-0010730695 00000 n 
-0010731133 00000 n 
-0010731317 00000 n 
-0010731365 00000 n 
-0010731573 00000 n 
-0010731780 00000 n 
-0010731828 00000 n 
-0010731875 00000 n 
-0010732057 00000 n 
-0010732238 00000 n 
-0010732286 00000 n 
-0010732334 00000 n 
-0010732485 00000 n 
-0010746054 00000 n 
-0010746447 00000 n 
-0010746495 00000 n 
-0010746543 00000 n 
-0010746805 00000 n 
-0010746853 00000 n 
-0010748843 00000 n 
-0010749223 00000 n 
-0010749271 00000 n 
-0010750194 00000 n 
-0010750389 00000 n 
-0010752304 00000 n 
-0010752689 00000 n 
-0010752737 00000 n 
-0010752971 00000 n 
-0010753204 00000 n 
-0010753332 00000 n 
-0010779031 00000 n 
-0010779411 00000 n 
-0010779459 00000 n 
-0010779620 00000 n 
-0010805075 00000 n 
-0010805442 00000 n 
-0010805641 00000 n 
-0010813283 00000 n 
-0010813672 00000 n 
-0010813720 00000 n 
-0010813900 00000 n 
-0010814026 00000 n 
-0010858377 00000 n 
-0010858725 00000 n 
-0010890898 00000 n 
-0010891278 00000 n 
-0010891326 00000 n 
-0010891496 00000 n 
-0010936202 00000 n 
-0010936550 00000 n 
-0010943273 00000 n 
-0010943666 00000 n 
-0010943714 00000 n 
-0010943840 00000 n 
-0010991217 00000 n 
-0010991597 00000 n 
-0010991851 00000 n 
-0010992257 00000 n 
-0010992605 00000 n 
-0010992653 00000 n 
-0011008203 00000 n 
-0011008623 00000 n 
-0011008671 00000 n 
-0011008864 00000 n 
-0011008990 00000 n 
-0011009105 00000 n 
-0011009236 00000 n 
-0011009284 00000 n 
-0011032145 00000 n 
-0011032493 00000 n 
-0011037950 00000 n 
-0011038354 00000 n 
-0011038402 00000 n 
-0011038595 00000 n 
-0011038775 00000 n 
-0011039007 00000 n 
-0011055018 00000 n 
-0011055407 00000 n 
-0011055455 00000 n 
-0011066305 00000 n 
-0011066666 00000 n 
-0011066714 00000 n 
-0011066762 00000 n 
-0011066810 00000 n 
-0011066858 00000 n 
-0011074165 00000 n 
-0011074558 00000 n 
-0011074606 00000 n 
-0011074842 00000 n 
-0011077621 00000 n 
-0011077982 00000 n 
-0011078030 00000 n 
-0011082901 00000 n 
-0011083262 00000 n 
-0011083310 00000 n 
-0011085004 00000 n 
-0011085352 00000 n 
-0011085400 00000 n 
-0011088508 00000 n 
-0011088856 00000 n 
-0011088904 00000 n 
-0011089358 00000 n 
-0011096792 00000 n 
-0011097153 00000 n 
-0011097201 00000 n 
-0011105609 00000 n 
-0011105983 00000 n 
-0011106031 00000 n 
-0011106079 00000 n 
-0011106127 00000 n 
-0011108264 00000 n 
-0011108640 00000 n 
-0011108688 00000 n 
-0011108906 00000 n 
-0011109139 00000 n 
-0011111465 00000 n 
-0011111826 00000 n 
-0011111874 00000 n 
-0011123264 00000 n 
-0011123693 00000 n 
-0011123741 00000 n 
-0011123937 00000 n 
-0011124133 00000 n 
-0011124252 00000 n 
-0011124447 00000 n 
-0011124566 00000 n 
-0011130864 00000 n 
-0011131225 00000 n 
-0011131273 00000 n 
-0011131816 00000 n 
-0011165171 00000 n 
-0011165545 00000 n 
-0011165593 00000 n 
-0011165641 00000 n 
-0011223693 00000 n 
-0011224041 00000 n 
-0011225923 00000 n 
-0011226271 00000 n 
-0011226319 00000 n 
-0011227324 00000 n 
-0011227672 00000 n 
-0011227720 00000 n 
-0011233857 00000 n 
-0011234218 00000 n 
-0011234266 00000 n 
-0011234314 00000 n 
-0011234362 00000 n 
-0011236620 00000 n 
-0011236968 00000 n 
-0011237016 00000 n 
-0011237064 00000 n 
-0011237112 00000 n 
-0011237160 00000 n 
-0011237208 00000 n 
-0011243108 00000 n 
-0011243497 00000 n 
-0011243545 00000 n 
-0011243740 00000 n 
-0011243963 00000 n 
-0011244011 00000 n 
-0011262904 00000 n 
-0011263310 00000 n 
-0011263358 00000 n 
-0011263503 00000 n 
-0011282049 00000 n 
-0011282455 00000 n 
-0011282678 00000 n 
-0011290693 00000 n 
-0011291113 00000 n 
-0011291161 00000 n 
-0011291375 00000 n 
-0011291588 00000 n 
-0011291782 00000 n 
-0011292010 00000 n 
-0011311939 00000 n 
-0011312341 00000 n 
-0011312389 00000 n 
-0011312972 00000 n 
-0011313161 00000 n 
-0011313356 00000 n 
-0011313550 00000 n 
-0011313598 00000 n 
-0011333756 00000 n 
-0011334149 00000 n 
-0011334197 00000 n 
-0011334442 00000 n 
-0011365358 00000 n 
-0011365732 00000 n 
-0011365780 00000 n 
-0011384969 00000 n 
-0011385330 00000 n 
-0011394290 00000 n 
-0011394664 00000 n 
-0011394711 00000 n 
-0011394758 00000 n 
-0011404953 00000 n 
-0011405314 00000 n 
-0011405362 00000 n 
-0011405410 00000 n 
-0011405458 00000 n 
-0011408371 00000 n 
-0011408751 00000 n 
-0011408799 00000 n 
-0011408995 00000 n 
-0011409043 00000 n 
-0011409433 00000 n 
-0011409781 00000 n 
-0011409829 00000 n 
-0011418149 00000 n 
-0011418560 00000 n 
-0011418608 00000 n 
-0011418796 00000 n 
-0011418845 00000 n 
-0011419032 00000 n 
-0011419081 00000 n 
-0011419266 00000 n 
-0011419315 00000 n 
-0011427912 00000 n 
-0011428305 00000 n 
-0011428353 00000 n 
-0011428401 00000 n 
-0011428587 00000 n 
-0011431955 00000 n 
-0011432335 00000 n 
-0011432383 00000 n 
-0011432568 00000 n 
-0011432956 00000 n 
-0011433304 00000 n 
-0011433352 00000 n 
-0011445274 00000 n 
-0011445685 00000 n 
-0011445733 00000 n 
-0011445910 00000 n 
-0011446077 00000 n 
-0011446202 00000 n 
-0011446250 00000 n 
-0011446298 00000 n 
-0011459966 00000 n 
-0011460374 00000 n 
-0011460422 00000 n 
-0011460937 00000 n 
-0011461158 00000 n 
-0011481329 00000 n 
-0011481740 00000 n 
-0011481883 00000 n 
-0011481930 00000 n 
-0011481978 00000 n 
-0011482026 00000 n 
-0011482195 00000 n 
-0011482380 00000 n 
-0011507971 00000 n 
-0011508369 00000 n 
-0011508576 00000 n 
-0011508784 00000 n 
-0011508991 00000 n 
-0011527123 00000 n 
-0011527484 00000 n 
-0011542176 00000 n 
-0011542583 00000 n 
-0011542788 00000 n 
-0011542993 00000 n 
-0011543196 00000 n 
-0011543400 00000 n 
-0011551772 00000 n 
-0011552133 00000 n 
-0011560486 00000 n 
-0011560884 00000 n 
-0011561092 00000 n 
-0011561302 00000 n 
-0011561511 00000 n 
-0011575726 00000 n 
-0011576128 00000 n 
-0011576324 00000 n 
-0011576520 00000 n 
-0011593426 00000 n 
-0011593833 00000 n 
-0011593883 00000 n 
-0011594016 00000 n 
-0011594066 00000 n 
-0011604647 00000 n 
-0011605021 00000 n 
-0011605069 00000 n 
-0011605117 00000 n 
-0011616210 00000 n 
-0011616648 00000 n 
-0011616696 00000 n 
-0011616744 00000 n 
-0011617098 00000 n 
-0011617226 00000 n 
-0011617412 00000 n 
-0011617583 00000 n 
-0011617708 00000 n 
-0011617835 00000 n 
-0011617963 00000 n 
-0011618011 00000 n 
-0011629937 00000 n 
-0011630420 00000 n 
-0011630469 00000 n 
-0011630597 00000 n 
-0011630646 00000 n 
-0011630772 00000 n 
-0011630902 00000 n 
-0011630951 00000 n 
-0011631076 00000 n 
-0011631200 00000 n 
-0011631334 00000 n 
-0011631468 00000 n 
-0011631603 00000 n 
-0011631726 00000 n 
-0011631862 00000 n 
-0011631992 00000 n 
-0011637567 00000 n 
-0011637997 00000 n 
-0011638045 00000 n 
-0011638168 00000 n 
-0011638216 00000 n 
-0011638342 00000 n 
-0011638462 00000 n 
-0011638510 00000 n 
-0011638636 00000 n 
-0011638758 00000 n 
-0011638806 00000 n 
-0011638927 00000 n 
-0011639051 00000 n 
-0011639099 00000 n 
-0011639223 00000 n 
-0011650383 00000 n 
-0011650757 00000 n 
-0011650805 00000 n 
-0011650853 00000 n 
-0011650901 00000 n 
-0011664147 00000 n 
-0011664521 00000 n 
-0011664569 00000 n 
-0011677867 00000 n 
-0011678228 00000 n 
-0011678276 00000 n 
-0011689766 00000 n 
-0011690140 00000 n 
-0011690188 00000 n 
-0011690236 00000 n 
-0011690284 00000 n 
-0011690332 00000 n 
-0011698326 00000 n 
-0011698687 00000 n 
-0011698735 00000 n 
-0011698784 00000 n 
-0011698833 00000 n 
-0011719997 00000 n 
-0011720371 00000 n 
-0011757771 00000 n 
-0011758119 00000 n 
-0011795643 00000 n 
-0011795991 00000 n 
-0011828556 00000 n 
-0011828904 00000 n 
-0011859532 00000 n 
-0011859880 00000 n 
-0011871084 00000 n 
-0011871522 00000 n 
-0011871570 00000 n 
-0011871719 00000 n 
-0011871916 00000 n 
-0011872051 00000 n 
-0011872188 00000 n 
-0011872327 00000 n 
-0011872469 00000 n 
-0011877855 00000 n 
-0011878257 00000 n 
-0011918914 00000 n 
-0011946677 00000 n 
-0011954539 00000 n 
-0011954914 00000 n 
-0012000955 00000 n 
-0012001004 00000 n 
-0012019115 00000 n 
-0012019521 00000 n 
-0012019704 00000 n 
-0012019751 00000 n 
-0012053316 00000 n 
-0012053690 00000 n 
-0012085301 00000 n 
-0012085712 00000 n 
-0012085905 00000 n 
-0012086096 00000 n 
-0012086307 00000 n 
-0012086355 00000 n 
-0012086403 00000 n 
-0012101178 00000 n 
-0012101594 00000 n 
-0012101789 00000 n 
-0012101925 00000 n 
-0012101974 00000 n 
-0012102182 00000 n 
-0012102324 00000 n 
-0012102373 00000 n 
-0012102509 00000 n 
-0012102558 00000 n 
-0012114420 00000 n 
-0012114835 00000 n 
-0012114967 00000 n 
-0012115109 00000 n 
-0012115157 00000 n 
-0012115206 00000 n 
-0012115755 00000 n 
-0012115979 00000 n 
-0012116028 00000 n 
-0012128440 00000 n 
-0012128814 00000 n 
-0012128863 00000 n 
-0012139882 00000 n 
-0012140256 00000 n 
-0012140305 00000 n 
-0012143167 00000 n 
-0012143528 00000 n 
-0012144857 00000 n 
-0012145233 00000 n 
-0012145281 00000 n 
-0012145329 00000 n 
-0012145498 00000 n 
-0012145546 00000 n 
-0012145728 00000 n 
-0012148684 00000 n 
-0012149078 00000 n 
-0012149126 00000 n 
-0012149311 00000 n 
-0012149504 00000 n 
-0012149681 00000 n 
-0012149857 00000 n 
-0012157060 00000 n 
-0012157435 00000 n 
-0012157483 00000 n 
-0012157531 00000 n 
-0012157579 00000 n 
-0012183466 00000 n 
-0012188029 00000 n 
-0012188078 00000 n 
-0012188127 00000 n 
-0012188176 00000 n 
-0012195882 00000 n 
-0012196230 00000 n 
-0012196278 00000 n 
-0012243046 00000 n 
-0012249686 00000 n 
-0012250061 00000 n 
-0012250110 00000 n 
-0012260037 00000 n 
-0012260398 00000 n 
-0012260446 00000 n 
-0012260494 00000 n 
-0012273041 00000 n 
-0012273402 00000 n 
-0012273450 00000 n 
-0012287202 00000 n 
-0012287563 00000 n 
-0012287611 00000 n 
-0012288188 00000 n 
-0012288236 00000 n 
-0012288284 00000 n 
-0012306217 00000 n 
-0012306565 00000 n 
-0012306613 00000 n 
-0012319044 00000 n 
-0012319487 00000 n 
-0012319535 00000 n 
-0012319583 00000 n 
-0012319723 00000 n 
-0012319850 00000 n 
-0012320000 00000 n 
-0012320137 00000 n 
-0012320185 00000 n 
-0012320317 00000 n 
-0012320364 00000 n 
-0012320489 00000 n 
-0012320537 00000 n 
-0012320665 00000 n 
-0012320879 00000 n 
-0012330918 00000 n 
-0012331298 00000 n 
-0012331346 00000 n 
-0012331781 00000 n 
-0012331917 00000 n 
-0012339220 00000 n 
-0012339717 00000 n 
-0012339765 00000 n 
-0012339813 00000 n 
-0012339984 00000 n 
-0012340156 00000 n 
-0012340412 00000 n 
-0012340461 00000 n 
-0012340710 00000 n 
-0012340938 00000 n 
-0012341182 00000 n 
-0012341231 00000 n 
-0012341424 00000 n 
-0012341634 00000 n 
-0012341847 00000 n 
-0012341896 00000 n 
-0012342088 00000 n 
-0012342321 00000 n 
-0012342506 00000 n 
-0012342555 00000 n 
-0012342748 00000 n 
-0012342797 00000 n 
-0012342991 00000 n 
-0012344977 00000 n 
-0012345344 00000 n 
-0012345392 00000 n 
-0012345586 00000 n 
-0012348960 00000 n 
-0012349336 00000 n 
-0012349384 00000 n 
-0012349432 00000 n 
-0012349616 00000 n 
-0012349664 00000 n 
-0012349858 00000 n 
-0012353474 00000 n 
-0012353913 00000 n 
-0012353961 00000 n 
-0012358221 00000 n 
-0012358751 00000 n 
-0012358945 00000 n 
-0012359129 00000 n 
-0012359322 00000 n 
-0012359519 00000 n 
-0012359714 00000 n 
-0012359900 00000 n 
-0012383478 00000 n 
-0012383907 00000 n 
-0012383955 00000 n 
-0012384136 00000 n 
-0012384331 00000 n 
-0012384526 00000 n 
-0012384574 00000 n 
-0012384753 00000 n 
-0012385000 00000 n 
-0012393638 00000 n 
-0012394018 00000 n 
-0012394201 00000 n 
-0012424064 00000 n 
-0012424438 00000 n 
-0012424486 00000 n 
-0012445214 00000 n 
-0012445575 00000 n 
-0012445623 00000 n 
-0012455671 00000 n 
-0012456092 00000 n 
-0012456140 00000 n 
-0012456714 00000 n 
-0012456908 00000 n 
-0012457129 00000 n 
-0012457346 00000 n 
-0012457562 00000 n 
-0012457793 00000 n 
-0012457841 00000 n 
-0012457889 00000 n 
-0012457937 00000 n 
-0012458168 00000 n 
-0012458426 00000 n 
-0012458474 00000 n 
-0012458522 00000 n 
-0012472431 00000 n 
-0012472818 00000 n 
-0012472867 00000 n 
-0012472916 00000 n 
-0012472965 00000 n 
-0012480935 00000 n 
-0012481296 00000 n 
-0012481345 00000 n 
-0012481394 00000 n 
-0012481443 00000 n 
-0012481492 00000 n 
-0012481541 00000 n 
-0012493294 00000 n 
-0012493681 00000 n 
-0012493730 00000 n 
-0012494330 00000 n 
-0012494678 00000 n 
-0012494726 00000 n 
-0012507278 00000 n 
-0012507641 00000 n 
-0012507689 00000 n 
-0012507737 00000 n 
-0012507785 00000 n 
-0012507833 00000 n 
-0012507881 00000 n 
-0012523479 00000 n 
-0012523842 00000 n 
-0012523890 00000 n 
-0012523938 00000 n 
-0012523986 00000 n 
-0012538798 00000 n 
-0012539161 00000 n 
-0012539209 00000 n 
-0012539257 00000 n 
-0012555923 00000 n 
-0012556258 00000 n 
-0012570293 00000 n 
-0012570656 00000 n 
-0012570704 00000 n 
-0012570752 00000 n 
-0012570800 00000 n 
-0012571148 00000 n 
-0012571196 00000 n 
-0012584151 00000 n 
-0012584514 00000 n 
-0012584562 00000 n 
-0012584610 00000 n 
-0012584658 00000 n 
-0012584706 00000 n 
-0012584754 00000 n 
-0012601812 00000 n 
-0012602175 00000 n 
-0012602223 00000 n 
-0012602271 00000 n 
-0012602319 00000 n 
-0012602367 00000 n 
-0012602415 00000 n 
-0012602830 00000 n 
-0012624842 00000 n 
-0012625205 00000 n 
-0012625253 00000 n 
-0012625301 00000 n 
-0012640720 00000 n 
-0012641068 00000 n 
-0012641116 00000 n 
-0012641164 00000 n 
-0012641212 00000 n 
-0012654283 00000 n 
-0012654631 00000 n 
-0012654679 00000 n 
-0012654727 00000 n 
-0012654775 00000 n 
-0012673540 00000 n 
-0012673903 00000 n 
-0012673951 00000 n 
-0012674545 00000 n 
-0012674593 00000 n 
-0012674641 00000 n 
-0012689614 00000 n 
-0012689977 00000 n 
-0012690025 00000 n 
-0012690073 00000 n 
-0012690475 00000 n 
-0012690523 00000 n 
-0012690571 00000 n 
-0012704465 00000 n 
-0012704828 00000 n 
-0012704876 00000 n 
-0012704924 00000 n 
-0012704972 00000 n 
-0012705020 00000 n 
-0012705068 00000 n 
-0012720931 00000 n 
-0012721294 00000 n 
-0012721342 00000 n 
-0012721390 00000 n 
-0012721438 00000 n 
-0012721486 00000 n 
-0012736756 00000 n 
-0012737119 00000 n 
-0012737167 00000 n 
-0012737215 00000 n 
-0012737263 00000 n 
-0012737311 00000 n 
-0012737359 00000 n 
-0012737407 00000 n 
-0012751808 00000 n 
-0012752171 00000 n 
-0012752219 00000 n 
-0012752267 00000 n 
-0012752871 00000 n 
-0012752919 00000 n 
-0012752967 00000 n 
-0012753015 00000 n 
-0012772853 00000 n 
-0012773216 00000 n 
-0012773264 00000 n 
-0012773312 00000 n 
-0012785677 00000 n 
-0012786040 00000 n 
-0012786088 00000 n 
-0012786136 00000 n 
-0012786184 00000 n 
-0012786232 00000 n 
-0012786280 00000 n 
-0012786328 00000 n 
-0012786376 00000 n 
-0012799079 00000 n 
-0012799442 00000 n 
-0012799490 00000 n 
-0012799538 00000 n 
-0012800058 00000 n 
-0012800106 00000 n 
-0012800154 00000 n 
-0012800202 00000 n 
-0012800840 00000 n 
-0012815222 00000 n 
-0012815585 00000 n 
-0012815633 00000 n 
-0012815681 00000 n 
-0012815729 00000 n 
-0012815777 00000 n 
-0012823716 00000 n 
-0012824064 00000 n 
-0012824183 00000 n 
-0012824305 00000 n 
-0012824434 00000 n 
-0012824564 00000 n 
-0012824689 00000 n 
-0012824816 00000 n 
-0012824939 00000 n 
-0012825064 00000 n 
-0012825191 00000 n 
-0012825318 00000 n 
-0012825451 00000 n 
-0012825584 00000 n 
-0012825716 00000 n 
-0012825849 00000 n 
-0012825977 00000 n 
-0012826106 00000 n 
-0012826227 00000 n 
-0012826348 00000 n 
-0012826474 00000 n 
-0012826600 00000 n 
-0012826728 00000 n 
-0012826856 00000 n 
-0012826994 00000 n 
-0012827132 00000 n 
-0012827256 00000 n 
-0012827380 00000 n 
-0012827503 00000 n 
-0012827626 00000 n 
-0012827756 00000 n 
-0012827886 00000 n 
-0012828007 00000 n 
-0012828129 00000 n 
-0012828256 00000 n 
-0012828383 00000 n 
-0012828501 00000 n 
-0012828621 00000 n 
-0012828744 00000 n 
-0012828868 00000 n 
-0012829023 00000 n 
-0012829179 00000 n 
-0012829318 00000 n 
-0012829459 00000 n 
-0012829618 00000 n 
-0012829778 00000 n 
-0012829922 00000 n 
-0012830068 00000 n 
-0012830194 00000 n 
-0012830321 00000 n 
-0012830443 00000 n 
-0012830567 00000 n 
-0012830695 00000 n 
-0012830825 00000 n 
-0012830952 00000 n 
-0012831080 00000 n 
-0012831202 00000 n 
-0012831326 00000 n 
-0012831445 00000 n 
-0012831565 00000 n 
-0012831678 00000 n 
-0012831796 00000 n 
-0012831922 00000 n 
-0012832049 00000 n 
-0012832167 00000 n 
-0012832287 00000 n 
-0012832422 00000 n 
-0012832558 00000 n 
-0012832680 00000 n 
-0012832803 00000 n 
-0012832924 00000 n 
-0012833046 00000 n 
-0012833177 00000 n 
-0012833310 00000 n 
-0012833427 00000 n 
-0012833545 00000 n 
-0012833661 00000 n 
-0012833778 00000 n 
-0012833898 00000 n 
-0012834019 00000 n 
-0012834147 00000 n 
-0012834277 00000 n 
-0012834418 00000 n 
-0012834560 00000 n 
-0012834707 00000 n 
-0012834856 00000 n 
-0012834983 00000 n 
-0012835111 00000 n 
-0012835238 00000 n 
-0012835366 00000 n 
-0012835495 00000 n 
-0012835625 00000 n 
-0012835758 00000 n 
-0012835892 00000 n 
-0012836018 00000 n 
-0012836145 00000 n 
-0012836262 00000 n 
-0012836380 00000 n 
-0012836509 00000 n 
-0012836639 00000 n 
-0012836769 00000 n 
-0012836901 00000 n 
-0012837026 00000 n 
-0012837152 00000 n 
-0012837284 00000 n 
-0012837417 00000 n 
-0012837541 00000 n 
-0012837666 00000 n 
-0012837792 00000 n 
-0012837920 00000 n 
-0012838043 00000 n 
-0012838167 00000 n 
-0012838306 00000 n 
-0012838446 00000 n 
-0012838581 00000 n 
-0012838718 00000 n 
-0012838860 00000 n 
-0012839003 00000 n 
-0012839167 00000 n 
-0012839332 00000 n 
-0012839488 00000 n 
-0012839645 00000 n 
+0008755378 00000 n 
+0008755780 00000 n 
+0008755828 00000 n 
+0008755975 00000 n 
+0008756122 00000 n 
+0008762144 00000 n 
+0008762551 00000 n 
+0008762599 00000 n 
+0008762647 00000 n 
+0008762915 00000 n 
+0008763042 00000 n 
+0008763090 00000 n 
+0008763341 00000 n 
+0008763536 00000 n 
+0008775516 00000 n 
+0008775922 00000 n 
+0008775970 00000 n 
+0008776018 00000 n 
+0008776138 00000 n 
+0008795983 00000 n 
+0008796370 00000 n 
+0008796419 00000 n 
+0008796468 00000 n 
+0008809149 00000 n 
+0008809586 00000 n 
+0008809801 00000 n 
+0008809849 00000 n 
+0008810003 00000 n 
+0008810291 00000 n 
+0008810340 00000 n 
+0008810389 00000 n 
+0008823949 00000 n 
+0008824342 00000 n 
+0008824391 00000 n 
+0008824521 00000 n 
+0008824570 00000 n 
+0008837912 00000 n 
+0008838305 00000 n 
+0008838424 00000 n 
+0008838472 00000 n 
+0008840473 00000 n 
+0008840821 00000 n 
+0008854108 00000 n 
+0008854563 00000 n 
+0008854611 00000 n 
+0008854842 00000 n 
+0008854890 00000 n 
+0008855125 00000 n 
+0008855358 00000 n 
+0008855605 00000 n 
+0008855851 00000 n 
+0008855900 00000 n 
+0008855949 00000 n 
+0008872363 00000 n 
+0008872765 00000 n 
+0008872943 00000 n 
+0008872992 00000 n 
+0008873041 00000 n 
+0008879340 00000 n 
+0008879688 00000 n 
+0008879736 00000 n 
+0008887459 00000 n 
+0008887807 00000 n 
+0008888990 00000 n 
+0008889338 00000 n 
+0008900117 00000 n 
+0008900515 00000 n 
+0008900563 00000 n 
+0008900611 00000 n 
+0008900778 00000 n 
+0008900904 00000 n 
+0008901034 00000 n 
+0008901082 00000 n 
+0008901130 00000 n 
+0008901178 00000 n 
+0008936284 00000 n 
+0008936645 00000 n 
+0008936693 00000 n 
+0008936741 00000 n 
+0008936789 00000 n 
+0009093930 00000 n 
+0009097550 00000 n 
+0009098247 00000 n 
+0009098622 00000 n 
+0009192772 00000 n 
+0009279093 00000 n 
+0009280111 00000 n 
+0009280487 00000 n 
+0009351004 00000 n 
+0009363485 00000 n 
+0009363883 00000 n 
+0009363931 00000 n 
+0009364124 00000 n 
+0009364255 00000 n 
+0009364303 00000 n 
+0009364497 00000 n 
+0009376002 00000 n 
+0009376382 00000 n 
+0009376519 00000 n 
+0009428991 00000 n 
+0009434657 00000 n 
+0009435045 00000 n 
+0009435095 00000 n 
+0009444344 00000 n 
+0009444750 00000 n 
+0009444884 00000 n 
+0009444933 00000 n 
+0009457497 00000 n 
+0009457899 00000 n 
+0009458095 00000 n 
+0009458290 00000 n 
+0009458339 00000 n 
+0009465004 00000 n 
+0009465411 00000 n 
+0009465459 00000 n 
+0009621546 00000 n 
+0009623567 00000 n 
+0009623617 00000 n 
+0009624315 00000 n 
+0009624538 00000 n 
+0009639900 00000 n 
+0009640293 00000 n 
+0009640342 00000 n 
+0009640539 00000 n 
+0009640588 00000 n 
+0009655092 00000 n 
+0009655485 00000 n 
+0009655533 00000 n 
+0009655581 00000 n 
+0009655713 00000 n 
+0009667839 00000 n 
+0009668213 00000 n 
+0009668261 00000 n 
+0009668309 00000 n 
+0009668357 00000 n 
+0009677825 00000 n 
+0009678173 00000 n 
+0009686607 00000 n 
+0009686968 00000 n 
+0009687016 00000 n 
+0009697662 00000 n 
+0009698010 00000 n 
+0009714983 00000 n 
+0009715357 00000 n 
+0009715405 00000 n 
+0009715453 00000 n 
+0009728496 00000 n 
+0009728925 00000 n 
+0009728973 00000 n 
+0009729093 00000 n 
+0009729223 00000 n 
+0009729360 00000 n 
+0009729408 00000 n 
+0009729926 00000 n 
+0009730053 00000 n 
+0009730182 00000 n 
+0009730231 00000 n 
+0009738119 00000 n 
+0009738467 00000 n 
+0009748046 00000 n 
+0009748420 00000 n 
+0009748468 00000 n 
+0009748517 00000 n 
+0009763122 00000 n 
+0009763496 00000 n 
+0009763544 00000 n 
+0009777527 00000 n 
+0009777907 00000 n 
+0009777954 00000 n 
+0009778147 00000 n 
+0009788809 00000 n 
+0009789183 00000 n 
+0009789232 00000 n 
+0009805976 00000 n 
+0009806356 00000 n 
+0009806404 00000 n 
+0009806597 00000 n 
+0009808056 00000 n 
+0009808404 00000 n 
+0009816781 00000 n 
+0009817166 00000 n 
+0009817214 00000 n 
+0009817418 00000 n 
+0009817466 00000 n 
+0009817514 00000 n 
+0009818218 00000 n 
+0009818266 00000 n 
+0009818314 00000 n 
+0009818362 00000 n 
+0009818564 00000 n 
+0009818612 00000 n 
+0009818737 00000 n 
+0009820498 00000 n 
+0009820874 00000 n 
+0009820922 00000 n 
+0009821044 00000 n 
+0009821162 00000 n 
+0009833644 00000 n 
+0009834018 00000 n 
+0009834066 00000 n 
+0009834114 00000 n 
+0009834162 00000 n 
+0009843413 00000 n 
+0009843787 00000 n 
+0009843835 00000 n 
+0009843883 00000 n 
+0009843931 00000 n 
+0009843979 00000 n 
+0009854710 00000 n 
+0009855134 00000 n 
+0009855182 00000 n 
+0009855328 00000 n 
+0009855376 00000 n 
+0009855425 00000 n 
+0009855557 00000 n 
+0009855688 00000 n 
+0009867686 00000 n 
+0009868034 00000 n 
+0009872328 00000 n 
+0009872757 00000 n 
+0009872805 00000 n 
+0009872931 00000 n 
+0009873057 00000 n 
+0009873263 00000 n 
+0009873392 00000 n 
+0009873519 00000 n 
+0009886074 00000 n 
+0009886531 00000 n 
+0009886579 00000 n 
+0009886627 00000 n 
+0009886675 00000 n 
+0009886799 00000 n 
+0009886923 00000 n 
+0009887051 00000 n 
+0009887178 00000 n 
+0009887362 00000 n 
+0009887479 00000 n 
+0009887613 00000 n 
+0009887661 00000 n 
+0009887775 00000 n 
+0009887902 00000 n 
+0009887950 00000 n 
+0009888068 00000 n 
+0009888195 00000 n 
+0009905898 00000 n 
+0009906336 00000 n 
+0009906384 00000 n 
+0009907129 00000 n 
+0009907260 00000 n 
+0009907485 00000 n 
+0009907629 00000 n 
+0009907677 00000 n 
+0009907725 00000 n 
+0009907857 00000 n 
+0009908007 00000 n 
+0009908162 00000 n 
+0009920035 00000 n 
+0009920424 00000 n 
+0009920472 00000 n 
+0009920520 00000 n 
+0009920662 00000 n 
+0009920796 00000 n 
+0009933704 00000 n 
+0009934165 00000 n 
+0009934292 00000 n 
+0009934340 00000 n 
+0009934388 00000 n 
+0009934528 00000 n 
+0009934673 00000 n 
+0009934797 00000 n 
+0009934845 00000 n 
+0009934971 00000 n 
+0009935119 00000 n 
+0009935254 00000 n 
+0009935302 00000 n 
+0009935445 00000 n 
+0009935593 00000 n 
+0009935725 00000 n 
+0009949578 00000 n 
+0009949939 00000 n 
+0009949987 00000 n 
+0009950600 00000 n 
+0009966801 00000 n 
+0009967217 00000 n 
+0009967265 00000 n 
+0009967479 00000 n 
+0009967690 00000 n 
+0009998729 00000 n 
+0009999116 00000 n 
+0010010971 00000 n 
+0010011345 00000 n 
+0010011393 00000 n 
+0010011441 00000 n 
+0010011489 00000 n 
+0010011537 00000 n 
+0010011585 00000 n 
+0010021511 00000 n 
+0010021872 00000 n 
+0010021920 00000 n 
+0010032793 00000 n 
+0010033182 00000 n 
+0010033230 00000 n 
+0010033452 00000 n 
+0010033673 00000 n 
+0010044128 00000 n 
+0010044495 00000 n 
+0010044746 00000 n 
+0010054157 00000 n 
+0010054505 00000 n 
+0010067191 00000 n 
+0010067539 00000 n 
+0010078453 00000 n 
+0010078815 00000 n 
+0010080163 00000 n 
+0010080511 00000 n 
+0010080559 00000 n 
+0010092276 00000 n 
+0010092728 00000 n 
+0010092776 00000 n 
+0010093092 00000 n 
+0010093272 00000 n 
+0010093399 00000 n 
+0010093519 00000 n 
+0010093567 00000 n 
+0010093753 00000 n 
+0010093801 00000 n 
+0010094358 00000 n 
+0010094533 00000 n 
+0010094705 00000 n 
+0010094753 00000 n 
+0010094921 00000 n 
+0010094969 00000 n 
+0010095293 00000 n 
+0010095490 00000 n 
+0010107985 00000 n 
+0010108359 00000 n 
+0010108407 00000 n 
+0010118417 00000 n 
+0010118832 00000 n 
+0010118880 00000 n 
+0010119194 00000 n 
+0010119507 00000 n 
+0010121877 00000 n 
+0010122262 00000 n 
+0010122310 00000 n 
+0010122502 00000 n 
+0010122696 00000 n 
+0010122865 00000 n 
+0010136862 00000 n 
+0010137278 00000 n 
+0010137326 00000 n 
+0010137374 00000 n 
+0010137842 00000 n 
+0010137890 00000 n 
+0010138024 00000 n 
+0010138072 00000 n 
+0010138120 00000 n 
+0010138294 00000 n 
+0010148295 00000 n 
+0010148669 00000 n 
+0010148717 00000 n 
+0010148764 00000 n 
+0010148812 00000 n 
+0010158387 00000 n 
+0010158831 00000 n 
+0010158879 00000 n 
+0010159104 00000 n 
+0010159328 00000 n 
+0010159376 00000 n 
+0010159517 00000 n 
+0010159566 00000 n 
+0010159692 00000 n 
+0010159890 00000 n 
+0010169895 00000 n 
+0010170310 00000 n 
+0010170358 00000 n 
+0010170406 00000 n 
+0010170526 00000 n 
+0010170575 00000 n 
+0010170624 00000 n 
+0010170750 00000 n 
+0010170799 00000 n 
+0010170848 00000 n 
+0010182343 00000 n 
+0010182745 00000 n 
+0010182793 00000 n 
+0010182926 00000 n 
+0010183055 00000 n 
+0010183103 00000 n 
+0010183434 00000 n 
+0010183482 00000 n 
+0010196665 00000 n 
+0010197071 00000 n 
+0010197118 00000 n 
+0010197166 00000 n 
+0010197292 00000 n 
+0010199547 00000 n 
+0010199936 00000 n 
+0010199984 00000 n 
+0010200502 00000 n 
+0010200694 00000 n 
+0010200883 00000 n 
+0010202372 00000 n 
+0010202765 00000 n 
+0010202813 00000 n 
+0010202936 00000 n 
+0010202985 00000 n 
+0010220162 00000 n 
+0010220536 00000 n 
+0010220585 00000 n 
+0010237581 00000 n 
+0010238032 00000 n 
+0010238167 00000 n 
+0010238301 00000 n 
+0010238435 00000 n 
+0010238624 00000 n 
+0010238798 00000 n 
+0010238993 00000 n 
+0010250577 00000 n 
+0010250966 00000 n 
+0010251178 00000 n 
+0010251381 00000 n 
+0010265680 00000 n 
+0010266091 00000 n 
+0010266226 00000 n 
+0010266361 00000 n 
+0010266496 00000 n 
+0010280360 00000 n 
+0010280771 00000 n 
+0010280949 00000 n 
+0010281146 00000 n 
+0010281348 00000 n 
+0010294939 00000 n 
+0010295426 00000 n 
+0010295616 00000 n 
+0010295805 00000 n 
+0010295999 00000 n 
+0010296192 00000 n 
+0010296383 00000 n 
+0010296576 00000 n 
+0010296768 00000 n 
+0010296816 00000 n 
+0010296951 00000 n 
+0010297086 00000 n 
+0010297221 00000 n 
+0010299729 00000 n 
+0010300109 00000 n 
+0010300239 00000 n 
+0010303807 00000 n 
+0010304192 00000 n 
+0010304240 00000 n 
+0010304445 00000 n 
+0010304627 00000 n 
+0010304807 00000 n 
+0010313875 00000 n 
+0010314287 00000 n 
+0010314335 00000 n 
+0010314508 00000 n 
+0010314679 00000 n 
+0010314849 00000 n 
+0010316928 00000 n 
+0010317304 00000 n 
+0010317352 00000 n 
+0010317551 00000 n 
+0010317702 00000 n 
+0010320252 00000 n 
+0010320646 00000 n 
+0010320694 00000 n 
+0010320863 00000 n 
+0010320911 00000 n 
+0010321065 00000 n 
+0010321113 00000 n 
+0010321282 00000 n 
+0010321412 00000 n 
+0010334287 00000 n 
+0010334694 00000 n 
+0010334742 00000 n 
+0010334867 00000 n 
+0010334915 00000 n 
+0010335047 00000 n 
+0010335095 00000 n 
+0010335227 00000 n 
+0010335441 00000 n 
+0010346276 00000 n 
+0010346656 00000 n 
+0010346704 00000 n 
+0010346841 00000 n 
+0010346889 00000 n 
+0010347451 00000 n 
+0010371809 00000 n 
+0010372242 00000 n 
+0010372435 00000 n 
+0010372569 00000 n 
+0010372625 00000 n 
+0010372809 00000 n 
+0010372865 00000 n 
+0010373048 00000 n 
+0010373104 00000 n 
+0010385942 00000 n 
+0010386335 00000 n 
+0010386390 00000 n 
+0010386524 00000 n 
+0010386572 00000 n 
+0010386620 00000 n 
+0010386668 00000 n 
+0010386716 00000 n 
+0010386764 00000 n 
+0010398503 00000 n 
+0010398877 00000 n 
+0010398925 00000 n 
+0010398973 00000 n 
+0010399021 00000 n 
+0010413483 00000 n 
+0010413857 00000 n 
+0010413905 00000 n 
+0010413953 00000 n 
+0010414001 00000 n 
+0010414521 00000 n 
+0010421863 00000 n 
+0010422211 00000 n 
+0010422259 00000 n 
+0010422307 00000 n 
+0010422355 00000 n 
+0010422403 00000 n 
+0010448076 00000 n 
+0010448437 00000 n 
+0010448485 00000 n 
+0010448906 00000 n 
+0010465523 00000 n 
+0010465899 00000 n 
+0010481525 00000 n 
+0010481918 00000 n 
+0010481966 00000 n 
+0010482166 00000 n 
+0010482214 00000 n 
+0010482262 00000 n 
+0010499151 00000 n 
+0010499571 00000 n 
+0010499766 00000 n 
+0010499949 00000 n 
+0010499997 00000 n 
+0010500180 00000 n 
+0010500362 00000 n 
+0010512540 00000 n 
+0010512888 00000 n 
+0010525044 00000 n 
+0010525437 00000 n 
+0010525486 00000 n 
+0010525900 00000 n 
+0010525949 00000 n 
+0010526085 00000 n 
+0010526134 00000 n 
+0010541963 00000 n 
+0010542324 00000 n 
+0010552303 00000 n 
+0010552690 00000 n 
+0010552738 00000 n 
+0010553419 00000 n 
+0010553467 00000 n 
+0010553515 00000 n 
+0010553563 00000 n 
+0010575947 00000 n 
+0010576336 00000 n 
+0010576384 00000 n 
+0010576586 00000 n 
+0010576725 00000 n 
+0010576773 00000 n 
+0010577465 00000 n 
+0010577513 00000 n 
+0010602931 00000 n 
+0010603292 00000 n 
+0010603340 00000 n 
+0010603388 00000 n 
+0010603436 00000 n 
+0010603484 00000 n 
+0010614741 00000 n 
+0010615156 00000 n 
+0010615204 00000 n 
+0010615252 00000 n 
+0010615300 00000 n 
+0010615348 00000 n 
+0010615397 00000 n 
+0010615625 00000 n 
+0010615852 00000 n 
+0010625432 00000 n 
+0010625838 00000 n 
+0010625886 00000 n 
+0010625934 00000 n 
+0010626129 00000 n 
+0010626177 00000 n 
+0010638239 00000 n 
+0010638632 00000 n 
+0010638680 00000 n 
+0010638891 00000 n 
+0010638939 00000 n 
+0010639717 00000 n 
+0010639918 00000 n 
+0010639966 00000 n 
+0010640014 00000 n 
+0010640062 00000 n 
+0010640656 00000 n 
+0010655565 00000 n 
+0010655994 00000 n 
+0010656042 00000 n 
+0010656227 00000 n 
+0010656399 00000 n 
+0010656579 00000 n 
+0010656757 00000 n 
+0010656805 00000 n 
+0010656943 00000 n 
+0010671601 00000 n 
+0010672068 00000 n 
+0010672196 00000 n 
+0010672415 00000 n 
+0010672464 00000 n 
+0010672590 00000 n 
+0010672720 00000 n 
+0010672769 00000 n 
+0010672818 00000 n 
+0010673490 00000 n 
+0010673660 00000 n 
+0010673830 00000 n 
+0010686988 00000 n 
+0010687441 00000 n 
+0010687631 00000 n 
+0010687679 00000 n 
+0010687727 00000 n 
+0010687922 00000 n 
+0010688108 00000 n 
+0010688156 00000 n 
+0010688388 00000 n 
+0010688436 00000 n 
+0010688627 00000 n 
+0010688822 00000 n 
+0010688870 00000 n 
+0010703980 00000 n 
+0010704386 00000 n 
+0010704577 00000 n 
+0010712947 00000 n 
+0010713295 00000 n 
+0010723576 00000 n 
+0010723937 00000 n 
+0010723985 00000 n 
+0010724033 00000 n 
+0010735234 00000 n 
+0010735672 00000 n 
+0010735856 00000 n 
+0010735904 00000 n 
+0010736112 00000 n 
+0010736319 00000 n 
+0010736367 00000 n 
+0010736414 00000 n 
+0010736596 00000 n 
+0010736777 00000 n 
+0010736825 00000 n 
+0010736873 00000 n 
+0010737024 00000 n 
+0010750593 00000 n 
+0010750986 00000 n 
+0010751034 00000 n 
+0010751082 00000 n 
+0010751344 00000 n 
+0010751392 00000 n 
+0010753382 00000 n 
+0010753762 00000 n 
+0010753810 00000 n 
+0010754733 00000 n 
+0010754928 00000 n 
+0010756843 00000 n 
+0010757228 00000 n 
+0010757276 00000 n 
+0010757510 00000 n 
+0010757743 00000 n 
+0010757871 00000 n 
+0010783570 00000 n 
+0010783950 00000 n 
+0010783998 00000 n 
+0010784159 00000 n 
+0010809614 00000 n 
+0010809981 00000 n 
+0010810180 00000 n 
+0010817822 00000 n 
+0010818211 00000 n 
+0010818259 00000 n 
+0010818439 00000 n 
+0010818565 00000 n 
+0010862916 00000 n 
+0010863264 00000 n 
+0010895437 00000 n 
+0010895817 00000 n 
+0010895865 00000 n 
+0010896035 00000 n 
+0010940741 00000 n 
+0010941089 00000 n 
+0010947812 00000 n 
+0010948205 00000 n 
+0010948253 00000 n 
+0010948379 00000 n 
+0010995756 00000 n 
+0010996136 00000 n 
+0010996390 00000 n 
+0010996796 00000 n 
+0010997144 00000 n 
+0010997192 00000 n 
+0011012742 00000 n 
+0011013162 00000 n 
+0011013210 00000 n 
+0011013403 00000 n 
+0011013529 00000 n 
+0011013644 00000 n 
+0011013775 00000 n 
+0011013823 00000 n 
+0011036684 00000 n 
+0011037032 00000 n 
+0011042489 00000 n 
+0011042893 00000 n 
+0011042941 00000 n 
+0011043134 00000 n 
+0011043314 00000 n 
+0011043546 00000 n 
+0011059557 00000 n 
+0011059946 00000 n 
+0011059994 00000 n 
+0011070844 00000 n 
+0011071205 00000 n 
+0011071253 00000 n 
+0011071301 00000 n 
+0011071349 00000 n 
+0011071397 00000 n 
+0011078704 00000 n 
+0011079097 00000 n 
+0011079145 00000 n 
+0011079381 00000 n 
+0011082160 00000 n 
+0011082521 00000 n 
+0011082569 00000 n 
+0011087440 00000 n 
+0011087801 00000 n 
+0011087849 00000 n 
+0011089543 00000 n 
+0011089891 00000 n 
+0011089939 00000 n 
+0011093047 00000 n 
+0011093395 00000 n 
+0011093443 00000 n 
+0011093897 00000 n 
+0011101331 00000 n 
+0011101692 00000 n 
+0011101740 00000 n 
+0011110148 00000 n 
+0011110522 00000 n 
+0011110570 00000 n 
+0011110618 00000 n 
+0011110666 00000 n 
+0011112803 00000 n 
+0011113179 00000 n 
+0011113227 00000 n 
+0011113445 00000 n 
+0011113678 00000 n 
+0011116004 00000 n 
+0011116365 00000 n 
+0011116413 00000 n 
+0011127803 00000 n 
+0011128232 00000 n 
+0011128280 00000 n 
+0011128476 00000 n 
+0011128672 00000 n 
+0011128791 00000 n 
+0011128986 00000 n 
+0011129105 00000 n 
+0011135403 00000 n 
+0011135764 00000 n 
+0011135812 00000 n 
+0011136355 00000 n 
+0011169710 00000 n 
+0011170084 00000 n 
+0011170132 00000 n 
+0011170180 00000 n 
+0011228232 00000 n 
+0011228580 00000 n 
+0011230462 00000 n 
+0011230810 00000 n 
+0011230858 00000 n 
+0011231863 00000 n 
+0011232211 00000 n 
+0011232259 00000 n 
+0011238396 00000 n 
+0011238757 00000 n 
+0011238805 00000 n 
+0011238853 00000 n 
+0011238901 00000 n 
+0011241159 00000 n 
+0011241507 00000 n 
+0011241555 00000 n 
+0011241603 00000 n 
+0011241651 00000 n 
+0011241699 00000 n 
+0011241747 00000 n 
+0011247647 00000 n 
+0011248036 00000 n 
+0011248084 00000 n 
+0011248279 00000 n 
+0011248502 00000 n 
+0011248550 00000 n 
+0011267443 00000 n 
+0011267849 00000 n 
+0011267897 00000 n 
+0011268042 00000 n 
+0011286588 00000 n 
+0011286994 00000 n 
+0011287217 00000 n 
+0011295232 00000 n 
+0011295652 00000 n 
+0011295700 00000 n 
+0011295914 00000 n 
+0011296127 00000 n 
+0011296321 00000 n 
+0011296549 00000 n 
+0011316478 00000 n 
+0011316880 00000 n 
+0011316928 00000 n 
+0011317511 00000 n 
+0011317700 00000 n 
+0011317895 00000 n 
+0011318089 00000 n 
+0011318137 00000 n 
+0011338295 00000 n 
+0011338688 00000 n 
+0011338736 00000 n 
+0011338981 00000 n 
+0011369897 00000 n 
+0011370271 00000 n 
+0011370319 00000 n 
+0011389508 00000 n 
+0011389869 00000 n 
+0011398829 00000 n 
+0011399203 00000 n 
+0011399250 00000 n 
+0011399297 00000 n 
+0011409492 00000 n 
+0011409853 00000 n 
+0011409901 00000 n 
+0011409949 00000 n 
+0011409997 00000 n 
+0011412910 00000 n 
+0011413290 00000 n 
+0011413338 00000 n 
+0011413534 00000 n 
+0011413582 00000 n 
+0011413972 00000 n 
+0011414320 00000 n 
+0011414368 00000 n 
+0011422688 00000 n 
+0011423099 00000 n 
+0011423147 00000 n 
+0011423335 00000 n 
+0011423384 00000 n 
+0011423571 00000 n 
+0011423620 00000 n 
+0011423805 00000 n 
+0011423854 00000 n 
+0011432451 00000 n 
+0011432844 00000 n 
+0011432892 00000 n 
+0011432940 00000 n 
+0011433126 00000 n 
+0011436494 00000 n 
+0011436874 00000 n 
+0011436922 00000 n 
+0011437107 00000 n 
+0011437495 00000 n 
+0011437843 00000 n 
+0011437891 00000 n 
+0011449813 00000 n 
+0011450224 00000 n 
+0011450272 00000 n 
+0011450449 00000 n 
+0011450616 00000 n 
+0011450741 00000 n 
+0011450789 00000 n 
+0011450837 00000 n 
+0011464505 00000 n 
+0011464913 00000 n 
+0011464961 00000 n 
+0011465476 00000 n 
+0011465697 00000 n 
+0011485868 00000 n 
+0011486279 00000 n 
+0011486422 00000 n 
+0011486469 00000 n 
+0011486517 00000 n 
+0011486565 00000 n 
+0011486734 00000 n 
+0011486919 00000 n 
+0011512510 00000 n 
+0011512908 00000 n 
+0011513115 00000 n 
+0011513323 00000 n 
+0011513530 00000 n 
+0011531662 00000 n 
+0011532023 00000 n 
+0011546715 00000 n 
+0011547122 00000 n 
+0011547327 00000 n 
+0011547532 00000 n 
+0011547735 00000 n 
+0011547939 00000 n 
+0011556311 00000 n 
+0011556672 00000 n 
+0011565025 00000 n 
+0011565423 00000 n 
+0011565631 00000 n 
+0011565841 00000 n 
+0011566050 00000 n 
+0011580265 00000 n 
+0011580667 00000 n 
+0011580863 00000 n 
+0011581059 00000 n 
+0011597965 00000 n 
+0011598372 00000 n 
+0011598422 00000 n 
+0011598555 00000 n 
+0011598605 00000 n 
+0011609186 00000 n 
+0011609560 00000 n 
+0011609608 00000 n 
+0011609656 00000 n 
+0011620749 00000 n 
+0011621187 00000 n 
+0011621235 00000 n 
+0011621283 00000 n 
+0011621637 00000 n 
+0011621765 00000 n 
+0011621951 00000 n 
+0011622122 00000 n 
+0011622247 00000 n 
+0011622374 00000 n 
+0011622502 00000 n 
+0011622550 00000 n 
+0011634476 00000 n 
+0011634959 00000 n 
+0011635008 00000 n 
+0011635136 00000 n 
+0011635185 00000 n 
+0011635311 00000 n 
+0011635441 00000 n 
+0011635490 00000 n 
+0011635615 00000 n 
+0011635739 00000 n 
+0011635873 00000 n 
+0011636007 00000 n 
+0011636142 00000 n 
+0011636265 00000 n 
+0011636401 00000 n 
+0011636531 00000 n 
+0011642106 00000 n 
+0011642536 00000 n 
+0011642584 00000 n 
+0011642707 00000 n 
+0011642755 00000 n 
+0011642881 00000 n 
+0011643001 00000 n 
+0011643049 00000 n 
+0011643175 00000 n 
+0011643297 00000 n 
+0011643345 00000 n 
+0011643466 00000 n 
+0011643590 00000 n 
+0011643638 00000 n 
+0011643762 00000 n 
+0011654922 00000 n 
+0011655296 00000 n 
+0011655344 00000 n 
+0011655392 00000 n 
+0011655440 00000 n 
+0011668686 00000 n 
+0011669060 00000 n 
+0011669108 00000 n 
+0011682406 00000 n 
+0011682767 00000 n 
+0011682815 00000 n 
+0011694305 00000 n 
+0011694679 00000 n 
+0011694727 00000 n 
+0011694775 00000 n 
+0011694823 00000 n 
+0011694871 00000 n 
+0011702865 00000 n 
+0011703226 00000 n 
+0011703274 00000 n 
+0011703323 00000 n 
+0011703372 00000 n 
+0011724536 00000 n 
+0011724910 00000 n 
+0011762310 00000 n 
+0011762658 00000 n 
+0011800182 00000 n 
+0011800530 00000 n 
+0011833095 00000 n 
+0011833443 00000 n 
+0011864071 00000 n 
+0011864419 00000 n 
+0011875623 00000 n 
+0011876061 00000 n 
+0011876109 00000 n 
+0011876258 00000 n 
+0011876455 00000 n 
+0011876590 00000 n 
+0011876727 00000 n 
+0011876866 00000 n 
+0011877008 00000 n 
+0011882394 00000 n 
+0011882796 00000 n 
+0011923453 00000 n 
+0011951216 00000 n 
+0011959078 00000 n 
+0011959453 00000 n 
+0012005494 00000 n 
+0012005543 00000 n 
+0012023654 00000 n 
+0012024060 00000 n 
+0012024243 00000 n 
+0012024290 00000 n 
+0012057855 00000 n 
+0012058229 00000 n 
+0012089840 00000 n 
+0012090251 00000 n 
+0012090444 00000 n 
+0012090635 00000 n 
+0012090846 00000 n 
+0012090894 00000 n 
+0012090942 00000 n 
+0012105717 00000 n 
+0012106133 00000 n 
+0012106328 00000 n 
+0012106464 00000 n 
+0012106513 00000 n 
+0012106721 00000 n 
+0012106863 00000 n 
+0012106912 00000 n 
+0012107048 00000 n 
+0012107097 00000 n 
+0012118959 00000 n 
+0012119374 00000 n 
+0012119506 00000 n 
+0012119648 00000 n 
+0012119696 00000 n 
+0012119745 00000 n 
+0012120294 00000 n 
+0012120518 00000 n 
+0012120567 00000 n 
+0012132979 00000 n 
+0012133353 00000 n 
+0012133402 00000 n 
+0012144421 00000 n 
+0012144795 00000 n 
+0012144844 00000 n 
+0012147706 00000 n 
+0012148067 00000 n 
+0012149396 00000 n 
+0012149772 00000 n 
+0012149820 00000 n 
+0012149868 00000 n 
+0012150037 00000 n 
+0012150085 00000 n 
+0012150267 00000 n 
+0012153223 00000 n 
+0012153617 00000 n 
+0012153665 00000 n 
+0012153850 00000 n 
+0012154043 00000 n 
+0012154220 00000 n 
+0012154396 00000 n 
+0012161599 00000 n 
+0012161974 00000 n 
+0012162022 00000 n 
+0012162070 00000 n 
+0012162118 00000 n 
+0012188005 00000 n 
+0012192568 00000 n 
+0012192617 00000 n 
+0012192666 00000 n 
+0012192715 00000 n 
+0012200421 00000 n 
+0012200769 00000 n 
+0012200817 00000 n 
+0012247585 00000 n 
+0012254225 00000 n 
+0012254600 00000 n 
+0012254649 00000 n 
+0012264576 00000 n 
+0012264937 00000 n 
+0012264985 00000 n 
+0012265033 00000 n 
+0012277580 00000 n 
+0012277941 00000 n 
+0012277989 00000 n 
+0012291741 00000 n 
+0012292102 00000 n 
+0012292150 00000 n 
+0012292727 00000 n 
+0012292775 00000 n 
+0012292823 00000 n 
+0012310756 00000 n 
+0012311104 00000 n 
+0012311152 00000 n 
+0012323583 00000 n 
+0012324026 00000 n 
+0012324074 00000 n 
+0012324122 00000 n 
+0012324262 00000 n 
+0012324389 00000 n 
+0012324539 00000 n 
+0012324676 00000 n 
+0012324724 00000 n 
+0012324856 00000 n 
+0012324903 00000 n 
+0012325028 00000 n 
+0012325076 00000 n 
+0012325204 00000 n 
+0012325418 00000 n 
+0012335457 00000 n 
+0012335837 00000 n 
+0012335885 00000 n 
+0012336320 00000 n 
+0012336456 00000 n 
+0012343759 00000 n 
+0012344256 00000 n 
+0012344304 00000 n 
+0012344352 00000 n 
+0012344523 00000 n 
+0012344695 00000 n 
+0012344951 00000 n 
+0012345000 00000 n 
+0012345249 00000 n 
+0012345477 00000 n 
+0012345721 00000 n 
+0012345770 00000 n 
+0012345963 00000 n 
+0012346173 00000 n 
+0012346386 00000 n 
+0012346435 00000 n 
+0012346627 00000 n 
+0012346860 00000 n 
+0012347045 00000 n 
+0012347094 00000 n 
+0012347287 00000 n 
+0012347336 00000 n 
+0012347530 00000 n 
+0012349516 00000 n 
+0012349883 00000 n 
+0012349931 00000 n 
+0012350125 00000 n 
+0012353499 00000 n 
+0012353875 00000 n 
+0012353923 00000 n 
+0012353971 00000 n 
+0012354155 00000 n 
+0012354203 00000 n 
+0012354397 00000 n 
+0012358013 00000 n 
+0012358452 00000 n 
+0012358500 00000 n 
+0012362760 00000 n 
+0012363290 00000 n 
+0012363484 00000 n 
+0012363668 00000 n 
+0012363861 00000 n 
+0012364058 00000 n 
+0012364253 00000 n 
+0012364439 00000 n 
+0012388017 00000 n 
+0012388446 00000 n 
+0012388494 00000 n 
+0012388675 00000 n 
+0012388870 00000 n 
+0012389065 00000 n 
+0012389113 00000 n 
+0012389292 00000 n 
+0012389539 00000 n 
+0012398177 00000 n 
+0012398557 00000 n 
+0012398740 00000 n 
+0012428603 00000 n 
+0012428977 00000 n 
+0012429025 00000 n 
+0012449753 00000 n 
+0012450114 00000 n 
+0012450162 00000 n 
+0012460210 00000 n 
+0012460631 00000 n 
+0012460679 00000 n 
+0012461253 00000 n 
+0012461447 00000 n 
+0012461668 00000 n 
+0012461885 00000 n 
+0012462101 00000 n 
+0012462332 00000 n 
+0012462380 00000 n 
+0012462428 00000 n 
+0012462476 00000 n 
+0012462707 00000 n 
+0012462965 00000 n 
+0012463013 00000 n 
+0012463061 00000 n 
+0012476970 00000 n 
+0012477357 00000 n 
+0012477406 00000 n 
+0012477455 00000 n 
+0012477504 00000 n 
+0012485474 00000 n 
+0012485835 00000 n 
+0012485884 00000 n 
+0012485933 00000 n 
+0012485982 00000 n 
+0012486031 00000 n 
+0012486080 00000 n 
+0012497833 00000 n 
+0012498220 00000 n 
+0012498269 00000 n 
+0012498869 00000 n 
+0012499217 00000 n 
+0012499265 00000 n 
+0012511817 00000 n 
+0012512180 00000 n 
+0012512228 00000 n 
+0012512276 00000 n 
+0012512324 00000 n 
+0012512372 00000 n 
+0012512420 00000 n 
+0012528018 00000 n 
+0012528381 00000 n 
+0012528429 00000 n 
+0012528477 00000 n 
+0012528525 00000 n 
+0012543337 00000 n 
+0012543700 00000 n 
+0012543748 00000 n 
+0012543796 00000 n 
+0012560462 00000 n 
+0012560797 00000 n 
+0012574832 00000 n 
+0012575195 00000 n 
+0012575243 00000 n 
+0012575291 00000 n 
+0012575339 00000 n 
+0012575687 00000 n 
+0012575735 00000 n 
+0012588690 00000 n 
+0012589053 00000 n 
+0012589101 00000 n 
+0012589149 00000 n 
+0012589197 00000 n 
+0012589245 00000 n 
+0012589293 00000 n 
+0012606351 00000 n 
+0012606714 00000 n 
+0012606762 00000 n 
+0012606810 00000 n 
+0012606858 00000 n 
+0012606906 00000 n 
+0012606954 00000 n 
+0012607369 00000 n 
+0012629381 00000 n 
+0012629744 00000 n 
+0012629792 00000 n 
+0012629840 00000 n 
+0012645259 00000 n 
+0012645607 00000 n 
+0012645655 00000 n 
+0012645703 00000 n 
+0012645751 00000 n 
+0012658822 00000 n 
+0012659170 00000 n 
+0012659218 00000 n 
+0012659266 00000 n 
+0012659314 00000 n 
+0012678079 00000 n 
+0012678442 00000 n 
+0012678490 00000 n 
+0012679084 00000 n 
+0012679132 00000 n 
+0012679180 00000 n 
+0012694153 00000 n 
+0012694516 00000 n 
+0012694564 00000 n 
+0012694612 00000 n 
+0012695014 00000 n 
+0012695062 00000 n 
+0012695110 00000 n 
+0012709004 00000 n 
+0012709367 00000 n 
+0012709415 00000 n 
+0012709463 00000 n 
+0012709511 00000 n 
+0012709559 00000 n 
+0012709607 00000 n 
+0012725470 00000 n 
+0012725833 00000 n 
+0012725881 00000 n 
+0012725929 00000 n 
+0012725977 00000 n 
+0012726025 00000 n 
+0012741295 00000 n 
+0012741658 00000 n 
+0012741706 00000 n 
+0012741754 00000 n 
+0012741802 00000 n 
+0012741850 00000 n 
+0012741898 00000 n 
+0012741946 00000 n 
+0012756347 00000 n 
+0012756710 00000 n 
+0012756758 00000 n 
+0012756806 00000 n 
+0012757410 00000 n 
+0012757458 00000 n 
+0012757506 00000 n 
+0012757554 00000 n 
+0012777392 00000 n 
+0012777755 00000 n 
+0012777803 00000 n 
+0012777851 00000 n 
+0012790216 00000 n 
+0012790579 00000 n 
+0012790627 00000 n 
+0012790675 00000 n 
+0012790723 00000 n 
+0012790771 00000 n 
+0012790819 00000 n 
+0012790867 00000 n 
+0012790915 00000 n 
+0012803618 00000 n 
+0012803981 00000 n 
+0012804029 00000 n 
+0012804077 00000 n 
+0012804597 00000 n 
+0012804645 00000 n 
+0012804693 00000 n 
+0012804741 00000 n 
+0012805379 00000 n 
+0012819761 00000 n 
+0012820124 00000 n 
+0012820172 00000 n 
+0012820220 00000 n 
+0012820268 00000 n 
+0012820316 00000 n 
+0012828255 00000 n 
+0012828603 00000 n 
+0012828722 00000 n 
+0012828844 00000 n 
+0012828973 00000 n 
+0012829103 00000 n 
+0012829228 00000 n 
+0012829355 00000 n 
+0012829478 00000 n 
+0012829603 00000 n 
+0012829730 00000 n 
+0012829857 00000 n 
+0012829990 00000 n 
+0012830123 00000 n 
+0012830255 00000 n 
+0012830388 00000 n 
+0012830516 00000 n 
+0012830645 00000 n 
+0012830766 00000 n 
+0012830887 00000 n 
+0012831013 00000 n 
+0012831139 00000 n 
+0012831267 00000 n 
+0012831395 00000 n 
+0012831533 00000 n 
+0012831671 00000 n 
+0012831795 00000 n 
+0012831919 00000 n 
+0012832042 00000 n 
+0012832165 00000 n 
+0012832295 00000 n 
+0012832425 00000 n 
+0012832546 00000 n 
+0012832668 00000 n 
+0012832795 00000 n 
+0012832922 00000 n 
+0012833040 00000 n 
+0012833160 00000 n 
+0012833283 00000 n 
+0012833407 00000 n 
+0012833562 00000 n 
+0012833718 00000 n 
+0012833857 00000 n 
+0012833998 00000 n 
+0012834157 00000 n 
+0012834317 00000 n 
+0012834461 00000 n 
+0012834607 00000 n 
+0012834733 00000 n 
+0012834860 00000 n 
+0012834982 00000 n 
+0012835106 00000 n 
+0012835234 00000 n 
+0012835364 00000 n 
+0012835491 00000 n 
+0012835619 00000 n 
+0012835741 00000 n 
+0012835865 00000 n 
+0012835984 00000 n 
+0012836104 00000 n 
+0012836217 00000 n 
+0012836335 00000 n 
+0012836461 00000 n 
+0012836588 00000 n 
+0012836706 00000 n 
+0012836826 00000 n 
+0012836961 00000 n 
+0012837097 00000 n 
+0012837219 00000 n 
+0012837342 00000 n 
+0012837463 00000 n 
+0012837585 00000 n 
+0012837716 00000 n 
+0012837849 00000 n 
+0012837966 00000 n 
+0012838084 00000 n 
+0012838200 00000 n 
+0012838317 00000 n 
+0012838437 00000 n 
+0012838558 00000 n 
+0012838686 00000 n 
+0012838816 00000 n 
+0012838957 00000 n 
+0012839099 00000 n 
+0012839246 00000 n 
+0012839395 00000 n 
+0012839522 00000 n 
+0012839650 00000 n 
 0012839777 00000 n 
-0012839910 00000 n 
-0012840032 00000 n 
-0012840155 00000 n 
-0012840285 00000 n 
-0012840417 00000 n 
-0012840554 00000 n 
-0012840692 00000 n 
-0012840822 00000 n 
-0012840953 00000 n 
-0012841075 00000 n 
-0012841199 00000 n 
-0012841321 00000 n 
-0012841444 00000 n 
-0012841596 00000 n 
-0012841749 00000 n 
-0012841885 00000 n 
-0012842022 00000 n 
-0012842162 00000 n 
-0012842303 00000 n 
-0012842449 00000 n 
-0012842596 00000 n 
-0012842747 00000 n 
-0012842899 00000 n 
-0012843041 00000 n 
-0012843184 00000 n 
-0012843321 00000 n 
-0012843459 00000 n 
-0012843584 00000 n 
-0012843711 00000 n 
-0012843837 00000 n 
-0012843965 00000 n 
-0012844090 00000 n 
-0012844216 00000 n 
-0012844347 00000 n 
-0012844479 00000 n 
-0012844604 00000 n 
-0012844730 00000 n 
-0012844863 00000 n 
-0012844997 00000 n 
-0012845127 00000 n 
-0012845259 00000 n 
-0012845385 00000 n 
-0012845512 00000 n 
-0012845639 00000 n 
-0012845768 00000 n 
-0012845890 00000 n 
-0012846014 00000 n 
-0012846157 00000 n 
-0012846301 00000 n 
-0012846423 00000 n 
-0012846547 00000 n 
-0012846679 00000 n 
-0012846813 00000 n 
-0012846938 00000 n 
-0012847065 00000 n 
-0012847186 00000 n 
-0012847309 00000 n 
-0012847435 00000 n 
-0012847563 00000 n 
-0012847687 00000 n 
-0012847813 00000 n 
-0012847941 00000 n 
-0012848070 00000 n 
-0012848195 00000 n 
-0012848321 00000 n 
-0012848451 00000 n 
-0012848582 00000 n 
-0012848722 00000 n 
-0012848864 00000 n 
-0012848995 00000 n 
-0012849127 00000 n 
-0012849264 00000 n 
+0012839905 00000 n 
+0012840034 00000 n 
+0012840164 00000 n 
+0012840297 00000 n 
+0012840431 00000 n 
+0012840557 00000 n 
+0012840684 00000 n 
+0012840801 00000 n 
+0012840919 00000 n 
+0012841048 00000 n 
+0012841178 00000 n 
+0012841308 00000 n 
+0012841440 00000 n 
+0012841565 00000 n 
+0012841691 00000 n 
+0012841823 00000 n 
+0012841956 00000 n 
+0012842080 00000 n 
+0012842205 00000 n 
+0012842331 00000 n 
+0012842459 00000 n 
+0012842582 00000 n 
+0012842706 00000 n 
+0012842845 00000 n 
+0012842985 00000 n 
+0012843120 00000 n 
+0012843257 00000 n 
+0012843399 00000 n 
+0012843542 00000 n 
+0012843706 00000 n 
+0012843871 00000 n 
+0012844027 00000 n 
+0012844184 00000 n 
+0012844316 00000 n 
+0012844449 00000 n 
+0012844571 00000 n 
+0012844694 00000 n 
+0012844824 00000 n 
+0012844956 00000 n 
+0012845093 00000 n 
+0012845231 00000 n 
+0012845361 00000 n 
+0012845492 00000 n 
+0012845614 00000 n 
+0012845738 00000 n 
+0012845860 00000 n 
+0012845983 00000 n 
+0012846135 00000 n 
+0012846288 00000 n 
+0012846424 00000 n 
+0012846561 00000 n 
+0012846701 00000 n 
+0012846842 00000 n 
+0012846988 00000 n 
+0012847135 00000 n 
+0012847286 00000 n 
+0012847438 00000 n 
+0012847580 00000 n 
+0012847723 00000 n 
+0012847860 00000 n 
+0012847998 00000 n 
+0012848123 00000 n 
+0012848250 00000 n 
+0012848376 00000 n 
+0012848504 00000 n 
+0012848629 00000 n 
+0012848755 00000 n 
+0012848886 00000 n 
+0012849018 00000 n 
+0012849143 00000 n 
+0012849269 00000 n 
 0012849402 00000 n 
-0012849533 00000 n 
-0012849665 00000 n 
-0012849800 00000 n 
-0012849936 00000 n 
-0012850066 00000 n 
-0012850197 00000 n 
-0012850331 00000 n 
-0012850466 00000 n 
-0012850608 00000 n 
-0012850751 00000 n 
-0012850892 00000 n 
-0012851034 00000 n 
-0012851162 00000 n 
-0012851291 00000 n 
-0012851420 00000 n 
-0012851550 00000 n 
-0012851674 00000 n 
-0012851799 00000 n 
-0012851918 00000 n 
-0012852039 00000 n 
-0012852178 00000 n 
-0012852318 00000 n 
-0012852442 00000 n 
-0012852567 00000 n 
-0012852689 00000 n 
-0012852812 00000 n 
-0012852938 00000 n 
-0012853066 00000 n 
-0012853184 00000 n 
-0012853303 00000 n 
-0012853422 00000 n 
-0012853543 00000 n 
-0012853657 00000 n 
-0012853773 00000 n 
-0012853889 00000 n 
-0012854007 00000 n 
-0012854126 00000 n 
-0012854246 00000 n 
-0012854365 00000 n 
-0012854486 00000 n 
-0012854604 00000 n 
-0012854724 00000 n 
-0012854857 00000 n 
-0012854992 00000 n 
-0012855108 00000 n 
-0012855226 00000 n 
-0012855351 00000 n 
-0012855477 00000 n 
-0012855606 00000 n 
-0012855736 00000 n 
-0012855859 00000 n 
-0012855983 00000 n 
-0012856116 00000 n 
-0012856250 00000 n 
-0012856366 00000 n 
-0012856483 00000 n 
-0012856616 00000 n 
-0012856751 00000 n 
-0012856885 00000 n 
-0012857021 00000 n 
-0012857145 00000 n 
-0012857270 00000 n 
-0012857393 00000 n 
-0012857518 00000 n 
-0012857670 00000 n 
-0012857823 00000 n 
-0012857966 00000 n 
-0012858110 00000 n 
-0012858235 00000 n 
-0012858361 00000 n 
-0012858482 00000 n 
-0012858604 00000 n 
-0012858730 00000 n 
-0012858857 00000 n 
-0012858974 00000 n 
-0012859092 00000 n 
-0012859225 00000 n 
-0012859359 00000 n 
-0012859487 00000 n 
-0012859616 00000 n 
-0012859740 00000 n 
-0012859866 00000 n 
-0012859992 00000 n 
-0012860119 00000 n 
-0012860244 00000 n 
-0012860371 00000 n 
-0012860497 00000 n 
-0012860624 00000 n 
-0012860751 00000 n 
-0012860879 00000 n 
-0012861002 00000 n 
-0012861126 00000 n 
-0012861247 00000 n 
-0012861370 00000 n 
-0012861505 00000 n 
-0012861641 00000 n 
-0012861769 00000 n 
-0012861898 00000 n 
-0012862018 00000 n 
-0012862140 00000 n 
-0012862269 00000 n 
-0012862399 00000 n 
-0012862524 00000 n 
-0012862650 00000 n 
-0012862781 00000 n 
-0012862913 00000 n 
-0012863040 00000 n 
-0012863168 00000 n 
-0012863294 00000 n 
-0012863423 00000 n 
-0012863553 00000 n 
-0012863685 00000 n 
-0012863814 00000 n 
-0012863945 00000 n 
-0012864074 00000 n 
-0012864204 00000 n 
-0012864328 00000 n 
-0012864453 00000 n 
-0012864580 00000 n 
-0012864709 00000 n 
-0012864840 00000 n 
-0012864972 00000 n 
-0012865095 00000 n 
-0012865220 00000 n 
-0012865348 00000 n 
-0012865477 00000 n 
-0012865602 00000 n 
-0012865729 00000 n 
-0012865856 00000 n 
-0012865984 00000 n 
-0012866115 00000 n 
-0012866247 00000 n 
-0012866375 00000 n 
-0012866504 00000 n 
-0012866650 00000 n 
-0012866797 00000 n 
-0012866921 00000 n 
-0012867046 00000 n 
-0012867171 00000 n 
-0012867297 00000 n 
-0012867431 00000 n 
-0012867566 00000 n 
-0012867697 00000 n 
-0012867830 00000 n 
-0012867964 00000 n 
-0012868100 00000 n 
-0012868221 00000 n 
-0012868343 00000 n 
-0012868462 00000 n 
-0012868582 00000 n 
-0012868709 00000 n 
-0012868837 00000 n 
-0012868965 00000 n 
-0012869095 00000 n 
-0012869222 00000 n 
-0012869350 00000 n 
-0012869477 00000 n 
-0012869606 00000 n 
-0012869738 00000 n 
-0012869872 00000 n 
-0012870032 00000 n 
-0012870193 00000 n 
-0012870316 00000 n 
-0012870441 00000 n 
-0012870567 00000 n 
-0012870695 00000 n 
-0012870824 00000 n 
-0012870954 00000 n 
-0012871080 00000 n 
-0012871207 00000 n 
-0012871333 00000 n 
+0012849536 00000 n 
+0012849666 00000 n 
+0012849798 00000 n 
+0012849924 00000 n 
+0012850051 00000 n 
+0012850178 00000 n 
+0012850307 00000 n 
+0012850429 00000 n 
+0012850553 00000 n 
+0012850696 00000 n 
+0012850840 00000 n 
+0012850962 00000 n 
+0012851086 00000 n 
+0012851218 00000 n 
+0012851352 00000 n 
+0012851477 00000 n 
+0012851604 00000 n 
+0012851725 00000 n 
+0012851848 00000 n 
+0012851974 00000 n 
+0012852102 00000 n 
+0012852226 00000 n 
+0012852352 00000 n 
+0012852480 00000 n 
+0012852609 00000 n 
+0012852734 00000 n 
+0012852860 00000 n 
+0012852990 00000 n 
+0012853121 00000 n 
+0012853261 00000 n 
+0012853403 00000 n 
+0012853534 00000 n 
+0012853666 00000 n 
+0012853803 00000 n 
+0012853941 00000 n 
+0012854072 00000 n 
+0012854204 00000 n 
+0012854339 00000 n 
+0012854475 00000 n 
+0012854605 00000 n 
+0012854736 00000 n 
+0012854870 00000 n 
+0012855005 00000 n 
+0012855147 00000 n 
+0012855290 00000 n 
+0012855431 00000 n 
+0012855573 00000 n 
+0012855701 00000 n 
+0012855830 00000 n 
+0012855959 00000 n 
+0012856089 00000 n 
+0012856213 00000 n 
+0012856338 00000 n 
+0012856457 00000 n 
+0012856578 00000 n 
+0012856717 00000 n 
+0012856857 00000 n 
+0012856981 00000 n 
+0012857106 00000 n 
+0012857228 00000 n 
+0012857351 00000 n 
+0012857477 00000 n 
+0012857605 00000 n 
+0012857723 00000 n 
+0012857842 00000 n 
+0012857961 00000 n 
+0012858082 00000 n 
+0012858196 00000 n 
+0012858312 00000 n 
+0012858428 00000 n 
+0012858546 00000 n 
+0012858665 00000 n 
+0012858785 00000 n 
+0012858904 00000 n 
+0012859025 00000 n 
+0012859143 00000 n 
+0012859263 00000 n 
+0012859396 00000 n 
+0012859531 00000 n 
+0012859647 00000 n 
+0012859765 00000 n 
+0012859890 00000 n 
+0012860016 00000 n 
+0012860145 00000 n 
+0012860275 00000 n 
+0012860398 00000 n 
+0012860522 00000 n 
+0012860655 00000 n 
+0012860789 00000 n 
+0012860905 00000 n 
+0012861022 00000 n 
+0012861155 00000 n 
+0012861290 00000 n 
+0012861424 00000 n 
+0012861560 00000 n 
+0012861684 00000 n 
+0012861809 00000 n 
+0012861932 00000 n 
+0012862057 00000 n 
+0012862209 00000 n 
+0012862362 00000 n 
+0012862505 00000 n 
+0012862649 00000 n 
+0012862774 00000 n 
+0012862900 00000 n 
+0012863021 00000 n 
+0012863143 00000 n 
+0012863269 00000 n 
+0012863396 00000 n 
+0012863513 00000 n 
+0012863631 00000 n 
+0012863764 00000 n 
+0012863898 00000 n 
+0012864026 00000 n 
+0012864155 00000 n 
+0012864279 00000 n 
+0012864405 00000 n 
+0012864531 00000 n 
+0012864658 00000 n 
+0012864783 00000 n 
+0012864910 00000 n 
+0012865036 00000 n 
+0012865163 00000 n 
+0012865290 00000 n 
+0012865418 00000 n 
+0012865541 00000 n 
+0012865665 00000 n 
+0012865786 00000 n 
+0012865909 00000 n 
+0012866044 00000 n 
+0012866180 00000 n 
+0012866308 00000 n 
+0012866437 00000 n 
+0012866557 00000 n 
+0012866679 00000 n 
+0012866808 00000 n 
+0012866938 00000 n 
+0012867063 00000 n 
+0012867189 00000 n 
+0012867320 00000 n 
+0012867452 00000 n 
+0012867579 00000 n 
+0012867707 00000 n 
+0012867833 00000 n 
+0012867962 00000 n 
+0012868092 00000 n 
+0012868224 00000 n 
+0012868353 00000 n 
+0012868484 00000 n 
+0012868613 00000 n 
+0012868743 00000 n 
+0012868867 00000 n 
+0012868992 00000 n 
+0012869119 00000 n 
+0012869248 00000 n 
+0012869379 00000 n 
+0012869511 00000 n 
+0012869634 00000 n 
+0012869759 00000 n 
+0012869887 00000 n 
+0012870016 00000 n 
+0012870141 00000 n 
+0012870268 00000 n 
+0012870395 00000 n 
+0012870523 00000 n 
+0012870654 00000 n 
+0012870786 00000 n 
+0012870914 00000 n 
+0012871043 00000 n 
+0012871189 00000 n 
+0012871336 00000 n 
 0012871460 00000 n 
-0012871580 00000 n 
-0012871702 00000 n 
-0012871826 00000 n 
-0012871951 00000 n 
-0012872074 00000 n 
-0012872198 00000 n 
-0012872327 00000 n 
-0012872458 00000 n 
-0012872577 00000 n 
-0012872697 00000 n 
-0012872814 00000 n 
-

<TRUNCATED>

[11/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html
index a5d418c..95f2a65 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html
@@ -96,3682 +96,3680 @@
 <span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.88"></a>
 <span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.89"></a>
 <span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.client.VersionInfoUtil;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.exceptions.MergeRegionException;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.master.MasterRpcServices.BalanceSwitchMode;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.master.assignment.AssignmentManager;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.master.assignment.MergeTableRegionsProcedure;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.master.assignment.RegionStates;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.master.balancer.BalancerChore;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.master.balancer.ClusterStatusChore;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.master.cleaner.CleanerChore;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.master.cleaner.HFileCleaner;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.master.cleaner.LogCleaner;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.master.cleaner.ReplicationBarrierCleaner;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.master.locking.LockManager;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan.PlanType;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerFactory;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.master.procedure.CreateTableProcedure;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.master.procedure.DeleteNamespaceProcedure;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.master.procedure.DisableTableProcedure;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.master.procedure.EnableTableProcedure;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.master.procedure.InitMetaProcedure;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.master.procedure.ModifyTableProcedure;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.master.procedure.ProcedurePrepareLatch;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.master.procedure.ServerCrashProcedure;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.master.procedure.TruncateTableProcedure;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.master.replication.AbstractPeerProcedure;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.master.replication.AddPeerProcedure;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.master.replication.DisablePeerProcedure;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.master.replication.EnablePeerProcedure;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.master.replication.RemovePeerProcedure;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.master.replication.ReplicationPeerManager;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.master.replication.SyncReplicationReplayWALManager;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.master.replication.TransitPeerSyncReplicationStateProcedure;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.master.replication.UpdatePeerConfigProcedure;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.master.snapshot.SnapshotManager;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.master.zksyncer.MasterAddressSyncer;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.master.zksyncer.MetaLocationSyncer;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.mob.MobConstants;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.monitoring.MemoryBoundedLogMessageBuffer;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.monitoring.MonitoredTask;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.monitoring.TaskMonitor;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.procedure.MasterProcedureManagerHost;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.procedure.flush.MasterFlushTableProcedureManager;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.procedure2.LockedResource;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.procedure2.Procedure;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.procedure2.ProcedureEvent;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher.RemoteProcedure;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.procedure2.RemoteProcedureException;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.quotas.MasterQuotaManager;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.quotas.MasterSpaceQuotaObserver;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.quotas.QuotaObserverChore;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.quotas.QuotaUtil;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.quotas.SnapshotQuotaObserverChore;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshotNotifier;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshotNotifierFactory;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.regionserver.DefaultStoreEngine;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.regionserver.HStore;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.regionserver.RSRpcServices;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.regionserver.RegionSplitPolicy;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.regionserver.compactions.ExploringCompactionPolicy;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.regionserver.compactions.FIFOCompactionPolicy;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.replication.ReplicationLoadSource;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.replication.ReplicationUtils;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.replication.SyncReplicationState;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.replication.master.ReplicationHFileCleaner;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.replication.master.ReplicationLogCleaner;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.replication.master.ReplicationPeerConfigUpgrader;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.security.AccessDeniedException;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.trace.TraceUtil;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>import org.apache.hadoop.hbase.util.Addressing;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>import org.apache.hadoop.hbase.util.CompressionTest;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>import org.apache.hadoop.hbase.util.EncryptionTest;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>import org.apache.hadoop.hbase.util.HFileArchiveUtil;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>import org.apache.hadoop.hbase.util.HasThread;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>import org.apache.hadoop.hbase.util.IdLock;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>import org.apache.hadoop.hbase.util.ModifyRegionUtils;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>import org.apache.hadoop.hbase.util.VersionInfo;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>import org.apache.hadoop.hbase.zookeeper.LoadBalancerTracker;<a name="line.199"></a>
-<span class="sourceLineNo">200</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.200"></a>
-<span class="sourceLineNo">201</span>import org.apache.hadoop.hbase.zookeeper.MasterMaintenanceModeTracker;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>import org.apache.hadoop.hbase.zookeeper.RegionNormalizerTracker;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>import org.apache.hadoop.hbase.zookeeper.ZKClusterId;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>import org.apache.hadoop.hbase.zookeeper.ZKWatcher;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>import org.apache.hadoop.hbase.zookeeper.ZNodePaths;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.207"></a>
-<span class="sourceLineNo">208</span>import org.apache.zookeeper.KeeperException;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>import org.eclipse.jetty.server.Server;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>import org.eclipse.jetty.server.ServerConnector;<a name="line.210"></a>
-<span class="sourceLineNo">211</span>import org.eclipse.jetty.servlet.ServletHolder;<a name="line.211"></a>
-<span class="sourceLineNo">212</span>import org.eclipse.jetty.webapp.WebAppContext;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>import org.slf4j.Logger;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>import org.slf4j.LoggerFactory;<a name="line.214"></a>
-<span class="sourceLineNo">215</span><a name="line.215"></a>
-<span class="sourceLineNo">216</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.216"></a>
-<span class="sourceLineNo">217</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Quotas;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceViolationPolicy;<a name="line.223"></a>
-<span class="sourceLineNo">224</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription;<a name="line.224"></a>
-<span class="sourceLineNo">225</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos;<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>/**<a name="line.227"></a>
-<span class="sourceLineNo">228</span> * HMaster is the "master server" for HBase. An HBase cluster has one active<a name="line.228"></a>
-<span class="sourceLineNo">229</span> * master.  If many masters are started, all compete.  Whichever wins goes on to<a name="line.229"></a>
-<span class="sourceLineNo">230</span> * run the cluster.  All others park themselves in their constructor until<a name="line.230"></a>
-<span class="sourceLineNo">231</span> * master or cluster shutdown or until the active master loses its lease in<a name="line.231"></a>
-<span class="sourceLineNo">232</span> * zookeeper.  Thereafter, all running master jostle to take over master role.<a name="line.232"></a>
-<span class="sourceLineNo">233</span> *<a name="line.233"></a>
-<span class="sourceLineNo">234</span> * &lt;p&gt;The Master can be asked shutdown the cluster. See {@link #shutdown()}.  In<a name="line.234"></a>
-<span class="sourceLineNo">235</span> * this case it will tell all regionservers to go down and then wait on them<a name="line.235"></a>
-<span class="sourceLineNo">236</span> * all reporting in that they are down.  This master will then shut itself down.<a name="line.236"></a>
-<span class="sourceLineNo">237</span> *<a name="line.237"></a>
-<span class="sourceLineNo">238</span> * &lt;p&gt;You can also shutdown just this master.  Call {@link #stopMaster()}.<a name="line.238"></a>
-<span class="sourceLineNo">239</span> *<a name="line.239"></a>
-<span class="sourceLineNo">240</span> * @see org.apache.zookeeper.Watcher<a name="line.240"></a>
-<span class="sourceLineNo">241</span> */<a name="line.241"></a>
-<span class="sourceLineNo">242</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.242"></a>
-<span class="sourceLineNo">243</span>@SuppressWarnings("deprecation")<a name="line.243"></a>
-<span class="sourceLineNo">244</span>public class HMaster extends HRegionServer implements MasterServices {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  private static Logger LOG = LoggerFactory.getLogger(HMaster.class);<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>  /**<a name="line.247"></a>
-<span class="sourceLineNo">248</span>   * Protection against zombie master. Started once Master accepts active responsibility and<a name="line.248"></a>
-<span class="sourceLineNo">249</span>   * starts taking over responsibilities. Allows a finite time window before giving up ownership.<a name="line.249"></a>
-<span class="sourceLineNo">250</span>   */<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  private static class InitializationMonitor extends HasThread {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    /** The amount of time in milliseconds to sleep before checking initialization status. */<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    public static final String TIMEOUT_KEY = "hbase.master.initializationmonitor.timeout";<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    public static final long TIMEOUT_DEFAULT = TimeUnit.MILLISECONDS.convert(15, TimeUnit.MINUTES);<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>    /**<a name="line.256"></a>
-<span class="sourceLineNo">257</span>     * When timeout expired and initialization has not complete, call {@link System#exit(int)} when<a name="line.257"></a>
-<span class="sourceLineNo">258</span>     * true, do nothing otherwise.<a name="line.258"></a>
-<span class="sourceLineNo">259</span>     */<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    public static final String HALT_KEY = "hbase.master.initializationmonitor.haltontimeout";<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    public static final boolean HALT_DEFAULT = false;<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>    private final HMaster master;<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    private final long timeout;<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    private final boolean haltOnTimeout;<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>    /** Creates a Thread that monitors the {@link #isInitialized()} state. */<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    InitializationMonitor(HMaster master) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      super("MasterInitializationMonitor");<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      this.master = master;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      this.timeout = master.getConfiguration().getLong(TIMEOUT_KEY, TIMEOUT_DEFAULT);<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      this.haltOnTimeout = master.getConfiguration().getBoolean(HALT_KEY, HALT_DEFAULT);<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      this.setDaemon(true);<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>    @Override<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    public void run() {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      try {<a name="line.278"></a>
-<span class="sourceLineNo">279</span>        while (!master.isStopped() &amp;&amp; master.isActiveMaster()) {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>          Thread.sleep(timeout);<a name="line.280"></a>
-<span class="sourceLineNo">281</span>          if (master.isInitialized()) {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>            LOG.debug("Initialization completed within allotted tolerance. Monitor exiting.");<a name="line.282"></a>
-<span class="sourceLineNo">283</span>          } else {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>            LOG.error("Master failed to complete initialization after " + timeout + "ms. Please"<a name="line.284"></a>
-<span class="sourceLineNo">285</span>                + " consider submitting a bug report including a thread dump of this process.");<a name="line.285"></a>
-<span class="sourceLineNo">286</span>            if (haltOnTimeout) {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>              LOG.error("Zombie Master exiting. Thread dump to stdout");<a name="line.287"></a>
-<span class="sourceLineNo">288</span>              Threads.printThreadInfo(System.out, "Zombie HMaster");<a name="line.288"></a>
-<span class="sourceLineNo">289</span>              System.exit(-1);<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>      } catch (InterruptedException ie) {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>        LOG.trace("InitMonitor thread interrupted. Existing.");<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      }<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>  // MASTER is name of the webapp and the attribute name used stuffing this<a name="line.299"></a>
-<span class="sourceLineNo">300</span>  //instance into web context.<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  public static final String MASTER = "master";<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>  // Manager and zk listener for master election<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  private final ActiveMasterManager activeMasterManager;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  // Region server tracker<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  private RegionServerTracker regionServerTracker;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>  // Draining region server tracker<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  private DrainingServerTracker drainingServerTracker;<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  // Tracker for load balancer state<a name="line.309"></a>
-<span class="sourceLineNo">310</span>  LoadBalancerTracker loadBalancerTracker;<a name="line.310"></a>
-<span class="sourceLineNo">311</span>  // Tracker for meta location, if any client ZK quorum specified<a name="line.311"></a>
-<span class="sourceLineNo">312</span>  MetaLocationSyncer metaLocationSyncer;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  // Tracker for active master location, if any client ZK quorum specified<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  MasterAddressSyncer masterAddressSyncer;<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>  // Tracker for split and merge state<a name="line.316"></a>
-<span class="sourceLineNo">317</span>  private SplitOrMergeTracker splitOrMergeTracker;<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span>  // Tracker for region normalizer state<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  private RegionNormalizerTracker regionNormalizerTracker;<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span>  //Tracker for master maintenance mode setting<a name="line.322"></a>
-<span class="sourceLineNo">323</span>  private MasterMaintenanceModeTracker maintenanceModeTracker;<a name="line.323"></a>
-<span class="sourceLineNo">324</span><a name="line.324"></a>
-<span class="sourceLineNo">325</span>  private ClusterSchemaService clusterSchemaService;<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public static final String HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS =<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    "hbase.master.wait.on.service.seconds";<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  public static final int DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS = 5 * 60;<a name="line.329"></a>
-<span class="sourceLineNo">330</span><a name="line.330"></a>
-<span class="sourceLineNo">331</span>  // Metrics for the HMaster<a name="line.331"></a>
-<span class="sourceLineNo">332</span>  final MetricsMaster metricsMaster;<a name="line.332"></a>
-<span class="sourceLineNo">333</span>  // file system manager for the master FS operations<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  private MasterFileSystem fileSystemManager;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  private MasterWalManager walManager;<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  // server manager to deal with region server info<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  private volatile ServerManager serverManager;<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>  // manager of assignment nodes in zookeeper<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  private AssignmentManager assignmentManager;<a name="line.341"></a>
-<span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>  // manager of replication<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  private ReplicationPeerManager replicationPeerManager;<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  private SyncReplicationReplayWALManager syncReplicationReplayWALManager;<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span>  // buffer for "fatal error" notices from region servers<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  // in the cluster. This is only used for assisting<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  // operations/debugging.<a name="line.350"></a>
-<span class="sourceLineNo">351</span>  MemoryBoundedLogMessageBuffer rsFatals;<a name="line.351"></a>
-<span class="sourceLineNo">352</span><a name="line.352"></a>
-<span class="sourceLineNo">353</span>  // flag set after we become the active master (used for testing)<a name="line.353"></a>
-<span class="sourceLineNo">354</span>  private volatile boolean activeMaster = false;<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span>  // flag set after we complete initialization once active<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  private final ProcedureEvent&lt;?&gt; initialized = new ProcedureEvent&lt;&gt;("master initialized");<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>  // flag set after master services are started,<a name="line.359"></a>
-<span class="sourceLineNo">360</span>  // initialization may have not completed yet.<a name="line.360"></a>
-<span class="sourceLineNo">361</span>  volatile boolean serviceStarted = false;<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span>  // Maximum time we should run balancer for<a name="line.363"></a>
-<span class="sourceLineNo">364</span>  private final int maxBlancingTime;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  // Maximum percent of regions in transition when balancing<a name="line.365"></a>
-<span class="sourceLineNo">366</span>  private final double maxRitPercent;<a name="line.366"></a>
-<span class="sourceLineNo">367</span><a name="line.367"></a>
-<span class="sourceLineNo">368</span>  private final LockManager lockManager = new LockManager(this);<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>  private LoadBalancer balancer;<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  private RegionNormalizer normalizer;<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  private BalancerChore balancerChore;<a name="line.372"></a>
-<span class="sourceLineNo">373</span>  private RegionNormalizerChore normalizerChore;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  private ClusterStatusChore clusterStatusChore;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  private ClusterStatusPublisher clusterStatusPublisherChore = null;<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>  CatalogJanitor catalogJanitorChore;<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  private LogCleaner logCleaner;<a name="line.378"></a>
-<span class="sourceLineNo">379</span>  private HFileCleaner hfileCleaner;<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  private ReplicationBarrierCleaner replicationBarrierCleaner;<a name="line.380"></a>
-<span class="sourceLineNo">381</span>  private ExpiredMobFileCleanerChore expiredMobFileCleanerChore;<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  private MobCompactionChore mobCompactChore;<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  private MasterMobCompactionThread mobCompactThread;<a name="line.383"></a>
-<span class="sourceLineNo">384</span>  // used to synchronize the mobCompactionStates<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  private final IdLock mobCompactionLock = new IdLock();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  // save the information of mob compactions in tables.<a name="line.386"></a>
-<span class="sourceLineNo">387</span>  // the key is table name, the value is the number of compactions in that table.<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  private Map&lt;TableName, AtomicInteger&gt; mobCompactionStates = Maps.newConcurrentMap();<a name="line.388"></a>
-<span class="sourceLineNo">389</span><a name="line.389"></a>
-<span class="sourceLineNo">390</span>  MasterCoprocessorHost cpHost;<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span>  private final boolean preLoadTableDescriptors;<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>  // Time stamps for when a hmaster became active<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  private long masterActiveTime;<a name="line.395"></a>
-<span class="sourceLineNo">396</span><a name="line.396"></a>
-<span class="sourceLineNo">397</span>  // Time stamp for when HMaster finishes becoming Active Master<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  private long masterFinishedInitializationTime;<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>  //should we check the compression codec type at master side, default true, HBASE-6370<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  private final boolean masterCheckCompression;<a name="line.401"></a>
-<span class="sourceLineNo">402</span><a name="line.402"></a>
-<span class="sourceLineNo">403</span>  //should we check encryption settings at master side, default true<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  private final boolean masterCheckEncryption;<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>  Map&lt;String, Service&gt; coprocessorServiceHandlers = Maps.newHashMap();<a name="line.406"></a>
-<span class="sourceLineNo">407</span><a name="line.407"></a>
-<span class="sourceLineNo">408</span>  // monitor for snapshot of hbase tables<a name="line.408"></a>
-<span class="sourceLineNo">409</span>  SnapshotManager snapshotManager;<a name="line.409"></a>
-<span class="sourceLineNo">410</span>  // monitor for distributed procedures<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  private MasterProcedureManagerHost mpmHost;<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  // it is assigned after 'initialized' guard set to true, so should be volatile<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  private volatile MasterQuotaManager quotaManager;<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  private SpaceQuotaSnapshotNotifier spaceQuotaSnapshotNotifier;<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  private QuotaObserverChore quotaObserverChore;<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  private SnapshotQuotaObserverChore snapshotQuotaChore;<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  private ProcedureExecutor&lt;MasterProcedureEnv&gt; procedureExecutor;<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  private WALProcedureStore procedureStore;<a name="line.420"></a>
-<span class="sourceLineNo">421</span><a name="line.421"></a>
-<span class="sourceLineNo">422</span>  // handle table states<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  private TableStateManager tableStateManager;<a name="line.423"></a>
-<span class="sourceLineNo">424</span><a name="line.424"></a>
-<span class="sourceLineNo">425</span>  private long splitPlanCount;<a name="line.425"></a>
-<span class="sourceLineNo">426</span>  private long mergePlanCount;<a name="line.426"></a>
-<span class="sourceLineNo">427</span><a name="line.427"></a>
-<span class="sourceLineNo">428</span>  /* Handle favored nodes information */<a name="line.428"></a>
-<span class="sourceLineNo">429</span>  private FavoredNodesManager favoredNodesManager;<a name="line.429"></a>
-<span class="sourceLineNo">430</span><a name="line.430"></a>
-<span class="sourceLineNo">431</span>  /** jetty server for master to redirect requests to regionserver infoServer */<a name="line.431"></a>
-<span class="sourceLineNo">432</span>  private Server masterJettyServer;<a name="line.432"></a>
-<span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>  public static class RedirectServlet extends HttpServlet {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    private static final long serialVersionUID = 2894774810058302473L;<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    private final int regionServerInfoPort;<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    private final String regionServerHostname;<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>     * @param infoServer that we're trying to send all requests to<a name="line.440"></a>
-<span class="sourceLineNo">441</span>     * @param hostname may be null. if given, will be used for redirects instead of host from client.<a name="line.441"></a>
-<span class="sourceLineNo">442</span>     */<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    public RedirectServlet(InfoServer infoServer, String hostname) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>       regionServerInfoPort = infoServer.getPort();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>       regionServerHostname = hostname;<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    }<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>    @Override<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    public void doGet(HttpServletRequest request,<a name="line.449"></a>
-<span class="sourceLineNo">450</span>        HttpServletResponse response) throws ServletException, IOException {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      String redirectHost = regionServerHostname;<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      if(redirectHost == null) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        redirectHost = request.getServerName();<a name="line.453"></a>
-<span class="sourceLineNo">454</span>        if(!Addressing.isLocalAddress(InetAddress.getByName(redirectHost))) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>          LOG.warn("Couldn't resolve '" + redirectHost + "' as an address local to this node and '" +<a name="line.455"></a>
-<span class="sourceLineNo">456</span>              MASTER_HOSTNAME_KEY + "' is not set; client will get a HTTP 400 response. If " +<a name="line.456"></a>
-<span class="sourceLineNo">457</span>              "your HBase deployment relies on client accessible names that the region server process " +<a name="line.457"></a>
-<span class="sourceLineNo">458</span>              "can't resolve locally, then you should set the previously mentioned configuration variable " +<a name="line.458"></a>
-<span class="sourceLineNo">459</span>              "to an appropriate hostname.");<a name="line.459"></a>
-<span class="sourceLineNo">460</span>          // no sending client provided input back to the client, so the goal host is just in the logs.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>          response.sendError(400, "Request was to a host that I can't resolve for any of the network interfaces on " +<a name="line.461"></a>
-<span class="sourceLineNo">462</span>              "this node. If this is due to an intermediary such as an HTTP load balancer or other proxy, your HBase " +<a name="line.462"></a>
-<span class="sourceLineNo">463</span>              "administrator can set '" + MASTER_HOSTNAME_KEY + "' to point to the correct hostname.");<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          return;<a name="line.464"></a>
-<span class="sourceLineNo">465</span>        }<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      }<a name="line.466"></a>
-<span class="sourceLineNo">467</span>      // TODO this scheme should come from looking at the scheme registered in the infoserver's http server for the<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      // host and port we're using, but it's buried way too deep to do that ATM.<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      String redirectUrl = request.getScheme() + "://"<a name="line.469"></a>
-<span class="sourceLineNo">470</span>        + redirectHost + ":" + regionServerInfoPort<a name="line.470"></a>
-<span class="sourceLineNo">471</span>        + request.getRequestURI();<a name="line.471"></a>
-<span class="sourceLineNo">472</span>      response.sendRedirect(redirectUrl);<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><a name="line.475"></a>
-<span class="sourceLineNo">476</span>  /**<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * Initializes the HMaster. The steps are as follows:<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * &lt;p&gt;<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   * &lt;ol&gt;<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * &lt;li&gt;Initialize the local HRegionServer<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * &lt;li&gt;Start the ActiveMasterManager.<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   * &lt;/ol&gt;<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   * &lt;p&gt;<a name="line.483"></a>
-<span class="sourceLineNo">484</span>   * Remaining steps of initialization occur in<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   * #finishActiveMasterInitialization(MonitoredTask) after<a name="line.485"></a>
-<span class="sourceLineNo">486</span>   * the master becomes the active one.<a name="line.486"></a>
-<span class="sourceLineNo">487</span>   */<a name="line.487"></a>
-<span class="sourceLineNo">488</span>  public HMaster(final Configuration conf)<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      throws IOException, KeeperException {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    super(conf);<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    TraceUtil.initTracer(conf);<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    try {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      this.rsFatals = new MemoryBoundedLogMessageBuffer(<a name="line.493"></a>
-<span class="sourceLineNo">494</span>          conf.getLong("hbase.master.buffer.for.rs.fatals", 1 * 1024 * 1024));<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      LOG.info("hbase.rootdir=" + getRootDir() +<a name="line.495"></a>
-<span class="sourceLineNo">496</span>          ", hbase.cluster.distributed=" + this.conf.getBoolean(HConstants.CLUSTER_DISTRIBUTED, false));<a name="line.496"></a>
-<span class="sourceLineNo">497</span><a name="line.497"></a>
-<span class="sourceLineNo">498</span>      // Disable usage of meta replicas in the master<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      this.conf.setBoolean(HConstants.USE_META_REPLICAS, false);<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>      decorateMasterConfiguration(this.conf);<a name="line.501"></a>
-<span class="sourceLineNo">502</span><a name="line.502"></a>
-<span class="sourceLineNo">503</span>      // Hack! Maps DFSClient =&gt; Master for logs.  HDFS made this<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      // config param for task trackers, but we can piggyback off of it.<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      if (this.conf.get("mapreduce.task.attempt.id") == null) {<a name="line.505"></a>
-<span class="sourceLineNo">506</span>        this.conf.set("mapreduce.task.attempt.id", "hb_m_" + this.serverName.toString());<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>      // should we check the compression codec type at master side, default true, HBASE-6370<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      this.masterCheckCompression = conf.getBoolean("hbase.master.check.compression", true);<a name="line.510"></a>
-<span class="sourceLineNo">511</span><a name="line.511"></a>
-<span class="sourceLineNo">512</span>      // should we check encryption settings at master side, default true<a name="line.512"></a>
-<span class="sourceLineNo">513</span>      this.masterCheckEncryption = conf.getBoolean("hbase.master.check.encryption", true);<a name="line.513"></a>
-<span class="sourceLineNo">514</span><a name="line.514"></a>
-<span class="sourceLineNo">515</span>      this.metricsMaster = new MetricsMaster(new MetricsMasterWrapperImpl(this));<a name="line.515"></a>
-<span class="sourceLineNo">516</span><a name="line.516"></a>
-<span class="sourceLineNo">517</span>      // preload table descriptor at startup<a name="line.517"></a>
-<span class="sourceLineNo">518</span>      this.preLoadTableDescriptors = conf.getBoolean("hbase.master.preload.tabledescriptors", true);<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>      this.maxBlancingTime = getMaxBalancingTime();<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      this.maxRitPercent = conf.getDouble(HConstants.HBASE_MASTER_BALANCER_MAX_RIT_PERCENT,<a name="line.521"></a>
-<span class="sourceLineNo">522</span>          HConstants.DEFAULT_HBASE_MASTER_BALANCER_MAX_RIT_PERCENT);<a name="line.522"></a>
-<span class="sourceLineNo">523</span><a name="line.523"></a>
-<span class="sourceLineNo">524</span>      // Do we publish the status?<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>      boolean shouldPublish = conf.getBoolean(HConstants.STATUS_PUBLISHED,<a name="line.526"></a>
-<span class="sourceLineNo">527</span>          HConstants.STATUS_PUBLISHED_DEFAULT);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      Class&lt;? extends ClusterStatusPublisher.Publisher&gt; publisherClass =<a name="line.528"></a>
-<span class="sourceLineNo">529</span>          conf.getClass(ClusterStatusPublisher.STATUS_PUBLISHER_CLASS,<a name="line.529"></a>
-<span class="sourceLineNo">530</span>              ClusterStatusPublisher.DEFAULT_STATUS_PUBLISHER_CLASS,<a name="line.530"></a>
-<span class="sourceLineNo">531</span>              ClusterStatusPublisher.Publisher.class);<a name="line.531"></a>
-<span class="sourceLineNo">532</span><a name="line.532"></a>
-<span class="sourceLineNo">533</span>      if (shouldPublish) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>        if (publisherClass == null) {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>          LOG.warn(HConstants.STATUS_PUBLISHED + " is true, but " +<a name="line.535"></a>
-<span class="sourceLineNo">536</span>              ClusterStatusPublisher.DEFAULT_STATUS_PUBLISHER_CLASS +<a name="line.536"></a>
-<span class="sourceLineNo">537</span>              " is not set - not publishing status");<a name="line.537"></a>
-<span class="sourceLineNo">538</span>        } else {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>          clusterStatusPublisherChore = new ClusterStatusPublisher(this, conf, publisherClass);<a name="line.539"></a>
-<span class="sourceLineNo">540</span>          getChoreService().scheduleChore(clusterStatusPublisherChore);<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>      // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.544"></a>
-<span class="sourceLineNo">545</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.545"></a>
-<span class="sourceLineNo">546</span>        this.activeMasterManager = new ActiveMasterManager(zooKeeper, this.serverName, this);<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      } else {<a name="line.547"></a>
-<span class="sourceLineNo">548</span>        this.activeMasterManager = null;<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      }<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    } catch (Throwable t) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      // Make sure we log the exception. HMaster is often started via reflection and the<a name="line.551"></a>
-<span class="sourceLineNo">552</span>      // cause of failed startup is lost.<a name="line.552"></a>
-<span class="sourceLineNo">553</span>      LOG.error("Failed construction of Master", t);<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      throw t;<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">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>  @Override<a name="line.558"></a>
-<span class="sourceLineNo">559</span>  protected String getUseThisHostnameInstead(Configuration conf) {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    return conf.get(MASTER_HOSTNAME_KEY);<a name="line.560"></a>
-<span class="sourceLineNo">561</span>  }<a name="line.561"></a>
-<span class="sourceLineNo">562</span><a name="line.562"></a>
-<span class="sourceLineNo">563</span>  // Main run loop. Calls through to the regionserver run loop AFTER becoming active Master; will<a name="line.563"></a>
-<span class="sourceLineNo">564</span>  // block in here until then.<a name="line.564"></a>
-<span class="sourceLineNo">565</span>  @Override<a name="line.565"></a>
-<span class="sourceLineNo">566</span>  public void run() {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    try {<a name="line.567"></a>
-<span class="sourceLineNo">568</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>        Threads.setDaemonThreadRunning(new Thread(() -&gt; {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>          try {<a name="line.570"></a>
-<span class="sourceLineNo">571</span>            int infoPort = putUpJettyServer();<a name="line.571"></a>
-<span class="sourceLineNo">572</span>            startActiveMasterManager(infoPort);<a name="line.572"></a>
-<span class="sourceLineNo">573</span>          } catch (Throwable t) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>            // Make sure we log the exception.<a name="line.574"></a>
-<span class="sourceLineNo">575</span>            String error = "Failed to become Active Master";<a name="line.575"></a>
-<span class="sourceLineNo">576</span>            LOG.error(error, t);<a name="line.576"></a>
-<span class="sourceLineNo">577</span>            // Abort should have been called already.<a name="line.577"></a>
-<span class="sourceLineNo">578</span>            if (!isAborted()) {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>              abort(error, t);<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">584</span>      // Fall in here even if we have been aborted. Need to run the shutdown services and<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      // the super run call will do this for us.<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      super.run();<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    } finally {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      if (this.clusterSchemaService != null) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>        // If on way out, then we are no longer active master.<a name="line.589"></a>
-<span class="sourceLineNo">590</span>        this.clusterSchemaService.stopAsync();<a name="line.590"></a>
-<span class="sourceLineNo">591</span>        try {<a name="line.591"></a>
-<span class="sourceLineNo">592</span>          this.clusterSchemaService.awaitTerminated(<a name="line.592"></a>
-<span class="sourceLineNo">593</span>              getConfiguration().getInt(HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS,<a name="line.593"></a>
-<span class="sourceLineNo">594</span>              DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS), TimeUnit.SECONDS);<a name="line.594"></a>
-<span class="sourceLineNo">595</span>        } catch (TimeoutException te) {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>          LOG.warn("Failed shutdown of clusterSchemaService", te);<a name="line.596"></a>
-<span class="sourceLineNo">597</span>        }<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      }<a name="line.598"></a>
-<span class="sourceLineNo">599</span>      this.activeMaster = false;<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    }<a name="line.600"></a>
-<span class="sourceLineNo">601</span>  }<a name="line.601"></a>
-<span class="sourceLineNo">602</span><a name="line.602"></a>
-<span class="sourceLineNo">603</span>  // return the actual infoPort, -1 means disable info server.<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  private int putUpJettyServer() throws IOException {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    if (!conf.getBoolean("hbase.master.infoserver.redirect", true)) {<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      return -1;<a name="line.606"></a>
-<span class="sourceLineNo">607</span>    }<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    final int infoPort = conf.getInt("hbase.master.info.port.orig",<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      HConstants.DEFAULT_MASTER_INFOPORT);<a name="line.609"></a>
-<span class="sourceLineNo">610</span>    // -1 is for disabling info server, so no redirecting<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    if (infoPort &lt; 0 || infoServer == null) {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      return -1;<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    }<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    if(infoPort == infoServer.getPort()) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      return infoPort;<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    }<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    final String addr = conf.get("hbase.master.info.bindAddress", "0.0.0.0");<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    if (!Addressing.isLocalAddress(InetAddress.getByName(addr))) {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      String msg =<a name="line.619"></a>
-<span class="sourceLineNo">620</span>          "Failed to start redirecting jetty server. Address " + addr<a name="line.620"></a>
-<span class="sourceLineNo">621</span>              + " does not belong to this host. Correct configuration parameter: "<a name="line.621"></a>
-<span class="sourceLineNo">622</span>              + "hbase.master.info.bindAddress";<a name="line.622"></a>
-<span class="sourceLineNo">623</span>      LOG.error(msg);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      throw new IOException(msg);<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    }<a name="line.625"></a>
-<span class="sourceLineNo">626</span><a name="line.626"></a>
-<span class="sourceLineNo">627</span>    // TODO I'm pretty sure we could just add another binding to the InfoServer run by<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    // the RegionServer and have it run the RedirectServlet instead of standing up<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    // a second entire stack here.<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    masterJettyServer = new Server();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>    final ServerConnector connector = new ServerConnector(masterJettyServer);<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    connector.setHost(addr);<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    connector.setPort(infoPort);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    masterJettyServer.addConnector(connector);<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    masterJettyServer.setStopAtShutdown(true);<a name="line.635"></a>
-<span class="sourceLineNo">636</span><a name="line.636"></a>
-<span class="sourceLineNo">637</span>    final String redirectHostname =<a name="line.637"></a>
-<span class="sourceLineNo">638</span>        StringUtils.isBlank(useThisHostnameInstead) ? null : useThisHostnameInstead;<a name="line.638"></a>
-<span class="sourceLineNo">639</span><a name="line.639"></a>
-<span class="sourceLineNo">640</span>    final RedirectServlet redirect = new RedirectServlet(infoServer, redirectHostname);<a name="line.640"></a>
-<span class="sourceLineNo">641</span>    final WebAppContext context = new WebAppContext(null, "/", null, null, null, null, WebAppContext.NO_SESSIONS);<a name="line.641"></a>
-<span class="sourceLineNo">642</span>    context.addServlet(new ServletHolder(redirect), "/*");<a name="line.642"></a>
-<span class="sourceLineNo">643</span>    context.setServer(masterJettyServer);<a name="line.643"></a>
-<span class="sourceLineNo">644</span><a name="line.644"></a>
-<span class="sourceLineNo">645</span>    try {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>      masterJettyServer.start();<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    } catch (Exception e) {<a name="line.647"></a>
-<span class="sourceLineNo">648</span>      throw new IOException("Failed to start redirecting jetty server", e);<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    }<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    return connector.getLocalPort();<a name="line.650"></a>
-<span class="sourceLineNo">651</span>  }<a name="line.651"></a>
-<span class="sourceLineNo">652</span><a name="line.652"></a>
-<span class="sourceLineNo">653</span>  @Override<a name="line.653"></a>
-<span class="sourceLineNo">654</span>  protected Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    return builder -&gt; builder.setRegionReplication(conf.getInt(HConstants.META_REPLICAS_NUM, HConstants.DEFAULT_META_REPLICA_NUM));<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
-<span class="sourceLineNo">657</span>  /**<a name="line.657"></a>
-<span class="sourceLineNo">658</span>   * For compatibility, if failed with regionserver credentials, try the master one<a name="line.658"></a>
-<span class="sourceLineNo">659</span>   */<a name="line.659"></a>
-<span class="sourceLineNo">660</span>  @Override<a name="line.660"></a>
-<span class="sourceLineNo">661</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    try {<a name="line.662"></a>
-<span class="sourceLineNo">663</span>      super.login(user, host);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    } catch (IOException ie) {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      user.login("hbase.master.keytab.file",<a name="line.665"></a>
-<span class="sourceLineNo">666</span>        "hbase.master.kerberos.principal", host);<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    }<a name="line.667"></a>
-<span class="sourceLineNo">668</span>  }<a name="line.668"></a>
-<span class="sourceLineNo">669</span><a name="line.669"></a>
-<span class="sourceLineNo">670</span>  /**<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   * If configured to put regions on active master,<a name="line.671"></a>
-<span class="sourceLineNo">672</span>   * wait till a backup master becomes active.<a name="line.672"></a>
-<span class="sourceLineNo">673</span>   * Otherwise, loop till the server is stopped or aborted.<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   */<a name="line.674"></a>
-<span class="sourceLineNo">675</span>  @Override<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  protected void waitForMasterActive(){<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    boolean tablesOnMaster = LoadBalancer.isTablesOnMaster(conf);<a name="line.677"></a>
-<span class="sourceLineNo">678</span>    while (!(tablesOnMaster &amp;&amp; activeMaster) &amp;&amp; !isStopped() &amp;&amp; !isAborted()) {<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      sleeper.sleep();<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    }<a name="line.680"></a>
-<span class="sourceLineNo">681</span>  }<a name="line.681"></a>
-<span class="sourceLineNo">682</span><a name="line.682"></a>
-<span class="sourceLineNo">683</span>  @VisibleForTesting<a name="line.683"></a>
-<span class="sourceLineNo">684</span>  public MasterRpcServices getMasterRpcServices() {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    return (MasterRpcServices)rpcServices;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>  }<a name="line.686"></a>
-<span class="sourceLineNo">687</span><a name="line.687"></a>
-<span class="sourceLineNo">688</span>  public boolean balanceSwitch(final boolean b) throws IOException {<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    return getMasterRpcServices().switchBalancer(b, BalanceSwitchMode.ASYNC);<a name="line.689"></a>
-<span class="sourceLineNo">690</span>  }<a name="line.690"></a>
-<span class="sourceLineNo">691</span><a name="line.691"></a>
-<span class="sourceLineNo">692</span>  @Override<a name="line.692"></a>
-<span class="sourceLineNo">693</span>  protected String getProcessName() {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    return MASTER;<a name="line.694"></a>
-<span class="sourceLineNo">695</span>  }<a name="line.695"></a>
-<span class="sourceLineNo">696</span><a name="line.696"></a>
-<span class="sourceLineNo">697</span>  @Override<a name="line.697"></a>
-<span class="sourceLineNo">698</span>  protected boolean canCreateBaseZNode() {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    return true;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>  }<a name="line.700"></a>
-<span class="sourceLineNo">701</span><a name="line.701"></a>
-<span class="sourceLineNo">702</span>  @Override<a name="line.702"></a>
-<span class="sourceLineNo">703</span>  protected boolean canUpdateTableDescriptor() {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    return true;<a name="line.704"></a>
-<span class="sourceLineNo">705</span>  }<a name="line.705"></a>
-<span class="sourceLineNo">706</span><a name="line.706"></a>
-<span class="sourceLineNo">707</span>  @Override<a name="line.707"></a>
-<span class="sourceLineNo">708</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    return new MasterRpcServices(this);<a name="line.709"></a>
-<span class="sourceLineNo">710</span>  }<a name="line.710"></a>
-<span class="sourceLineNo">711</span><a name="line.711"></a>
-<span class="sourceLineNo">712</span>  @Override<a name="line.712"></a>
-<span class="sourceLineNo">713</span>  protected void configureInfoServer() {<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    infoServer.addServlet("master-status", "/master-status", MasterStatusServlet.class);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    infoServer.setAttribute(MASTER, this);<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    if (LoadBalancer.isTablesOnMaster(conf)) {<a name="line.716"></a>
-<span class="sourceLineNo">717</span>      super.configureInfoServer();<a name="line.717"></a>
-<span class="sourceLineNo">718</span>    }<a name="line.718"></a>
-<span class="sourceLineNo">719</span>  }<a name="line.719"></a>
-<span class="sourceLineNo">720</span><a name="line.720"></a>
-<span class="sourceLineNo">721</span>  @Override<a name="line.721"></a>
-<span class="sourceLineNo">722</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    return MasterDumpServlet.class;<a name="line.723"></a>
-<span class="sourceLineNo">724</span>  }<a name="line.724"></a>
-<span class="sourceLineNo">725</span><a name="line.725"></a>
-<span class="sourceLineNo">726</span>  @Override<a name="line.726"></a>
-<span class="sourceLineNo">727</span>  public MetricsMaster getMasterMetrics() {<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    return metricsMaster;<a name="line.728"></a>
-<span class="sourceLineNo">729</span>  }<a name="line.729"></a>
-<span class="sourceLineNo">730</span><a name="line.730"></a>
-<span class="sourceLineNo">731</span>  /**<a name="line.731"></a>
-<span class="sourceLineNo">732</span>   * &lt;p&gt;<a name="line.732"></a>
-<span class="sourceLineNo">733</span>   * Initialize all ZK based system trackers. But do not include {@link RegionServerTracker}, it<a name="line.733"></a>
-<span class="sourceLineNo">734</span>   * should have already been initialized along with {@link ServerManager}.<a name="line.734"></a>
-<span class="sourceLineNo">735</span>   * &lt;/p&gt;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>   * &lt;p&gt;<a name="line.736"></a>
-<span class="sourceLineNo">737</span>   * Will be overridden in tests.<a name="line.737"></a>
-<span class="sourceLineNo">738</span>   * &lt;/p&gt;<a name="line.738"></a>
-<span class="sourceLineNo">739</span>   */<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  @VisibleForTesting<a name="line.740"></a>
-<span class="sourceLineNo">741</span>  protected void initializeZKBasedSystemTrackers()<a name="line.741"></a>
-<span class="sourceLineNo">742</span>      throws IOException, InterruptedException, KeeperException, ReplicationException {<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    this.balancer = LoadBalancerFactory.getLoadBalancer(conf);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>    this.normalizer = RegionNormalizerFactory.getRegionNormalizer(conf);<a name="line.744"></a>
-<span class="sourceLineNo">745</span>    this.normalizer.setMasterServices(this);<a name="line.745"></a>
-<span class="sourceLineNo">746</span>    this.normalizer.setMasterRpcServices((MasterRpcServices)rpcServices);<a name="line.746"></a>
-<span class="sourceLineNo">747</span>    this.loadBalancerTracker = new LoadBalancerTracker(zooKeeper, this);<a name="line.747"></a>
-<span class="sourceLineNo">748</span>    this.loadBalancerTracker.start();<a name="line.748"></a>
-<span class="sourceLineNo">749</span><a name="line.749"></a>
-<span class="sourceLineNo">750</span>    this.regionNormalizerTracker = new RegionNormalizerTracker(zooKeeper, this);<a name="line.750"></a>
-<span class="sourceLineNo">751</span>    this.regionNormalizerTracker.start();<a name="line.751"></a>
-<span class="sourceLineNo">752</span><a name="line.752"></a>
-<span class="sourceLineNo">753</span>    this.splitOrMergeTracker = new SplitOrMergeTracker(zooKeeper, conf, this);<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    this.splitOrMergeTracker.start();<a name="line.754"></a>
-<span class="sourceLineNo">755</span><a name="line.755"></a>
-<span class="sourceLineNo">756</span>    this.replicationPeerManager = ReplicationPeerManager.create(zooKeeper, conf);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>    this.syncReplicationReplayWALManager = new SyncReplicationReplayWALManager(this);<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>    this.drainingServerTracker = new DrainingServerTracker(zooKeeper, this, this.serverManager);<a name="line.759"></a>
-<span class="sourceLineNo">760</span>    this.drainingServerTracker.start();<a name="line.760"></a>
-<span class="sourceLineNo">761</span><a name="line.761"></a>
-<span class="sourceLineNo">762</span>    this.maintenanceModeTracker = new MasterMaintenanceModeTracker(zooKeeper);<a name="line.762"></a>
-<span class="sourceLineNo">763</span>    this.maintenanceModeTracker.start();<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span>    String clientQuorumServers = conf.get(HConstants.CLIENT_ZOOKEEPER_QUORUM);<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    boolean clientZkObserverMode = conf.getBoolean(HConstants.CLIENT_ZOOKEEPER_OBSERVER_MODE,<a name="line.766"></a>
-<span class="sourceLineNo">767</span>      HConstants.DEFAULT_CLIENT_ZOOKEEPER_OBSERVER_MODE);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    if (clientQuorumServers != null &amp;&amp; !clientZkObserverMode) {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>      // we need to take care of the ZK information synchronization<a name="line.769"></a>
-<span class="sourceLineNo">770</span>      // if given client ZK are not observer nodes<a name="line.770"></a>
-<span class="sourceLineNo">771</span>      ZKWatcher clientZkWatcher = new ZKWatcher(conf,<a name="line.771"></a>
-<span class="sourceLineNo">772</span>          getProcessName() + ":" + rpcServices.getSocketAddress().getPort() + "-clientZK", this,<a name="line.772"></a>
-<span class="sourceLineNo">773</span>          false, true);<a name="line.773"></a>
-<span class="sourceLineNo">774</span>      this.metaLocationSyncer = new MetaLocationSyncer(zooKeeper, clientZkWatcher, this);<a name="line.774"></a>
-<span class="sourceLineNo">775</span>      this.metaLocationSyncer.start();<a name="line.775"></a>
-<span class="sourceLineNo">776</span>      this.masterAddressSyncer = new MasterAddressSyncer(zooKeeper, clientZkWatcher, this);<a name="line.776"></a>
-<span class="sourceLineNo">777</span>      this.masterAddressSyncer.start();<a name="line.777"></a>
-<span class="sourceLineNo">778</span>      // set cluster id is a one-go effort<a name="line.778"></a>
-<span class="sourceLineNo">779</span>      ZKClusterId.setClusterId(clientZkWatcher, fileSystemManager.getClusterId());<a name="line.779"></a>
-<span class="sourceLineNo">780</span>    }<a name="line.780"></a>
-<span class="sourceLineNo">781</span><a name="line.781"></a>
-<span class="sourceLineNo">782</span>    // Set the cluster as up.  If new RSs, they'll be waiting on this before<a name="line.782"></a>
-<span class="sourceLineNo">783</span>    // going ahead with their startup.<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    boolean wasUp = this.clusterStatusTracker.isClusterUp();<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    if (!wasUp) this.clusterStatusTracker.setClusterUp();<a name="line.785"></a>
-<span class="sourceLineNo">786</span><a name="line.786"></a>
-<span class="sourceLineNo">787</span>    LOG.info("Active/primary master=" + this.serverName +<a name="line.787"></a>
-<span class="sourceLineNo">788</span>        ", sessionid=0x" +<a name="line.788"></a>
-<span class="sourceLineNo">789</span>        Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()) +<a name="line.789"></a>
-<span class="sourceLineNo">790</span>        ", setting cluster-up flag (Was=" + wasUp + ")");<a name="line.790"></a>
-<span class="sourceLineNo">791</span><a name="line.791"></a>
-<span class="sourceLineNo">792</span>    // create/initialize the snapshot manager and other procedure managers<a name="line.792"></a>
-<span class="sourceLineNo">793</span>    this.snapshotManager = new SnapshotManager();<a name="line.793"></a>
-<span class="sourceLineNo">794</span>    this.mpmHost = new MasterProcedureManagerHost();<a name="line.794"></a>
-<span class="sourceLineNo">795</span>    this.mpmHost.register(this.snapshotManager);<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    this.mpmHost.register(new MasterFlushTableProcedureManager());<a name="line.796"></a>
-<span class="sourceLineNo">797</span>    this.mpmHost.loadProcedures(conf);<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    this.mpmHost.initialize(this, this.metricsMaster);<a name="line.798"></a>
-<span class="sourceLineNo">799</span>  }<a name="line.799"></a>
-<span class="sourceLineNo">800</span><a name="line.800"></a>
-<span class="sourceLineNo">801</span>  /**<a name="line.801"></a>
-<span class="sourceLineNo">802</span>   * Finish initialization of HMaster after becoming the primary master.<a name="line.802"></a>
-<span class="sourceLineNo">803</span>   * &lt;p/&gt;<a name="line.803"></a>
-<span class="sourceLineNo">804</span>   * The startup order is a bit complicated but very important, do not change it unless you know<a name="line.804"></a>
-<span class="sourceLineNo">805</span>   * what you are doing.<a name="line.805"></a>
-<span class="sourceLineNo">806</span>   * &lt;ol&gt;<a name="line.806"></a>
-<span class="sourceLineNo">807</span>   * &lt;li&gt;Initialize file system based components - file system manager, wal manager, table<a name="line.807"></a>
-<span class="sourceLineNo">808</span>   * descriptors, etc&lt;/li&gt;<a name="line.808"></a>
-<span class="sourceLineNo">809</span>   * &lt;li&gt;Publish cluster id&lt;/li&gt;<a name="line.809"></a>
-<span class="sourceLineNo">810</span>   * &lt;li&gt;Here comes the most complicated part - initialize server manager, assignment manager and<a name="line.810"></a>
-<span class="sourceLineNo">811</span>   * region server tracker<a name="line.811"></a>
-<span class="sourceLineNo">812</span>   * &lt;ol type='i'&gt;<a name="line.812"></a>
-<span class="sourceLineNo">813</span>   * &lt;li&gt;Create server manager&lt;/li&gt;<a name="line.813"></a>
-<span class="sourceLineNo">814</span>   * &lt;li&gt;Create procedure executor, load the procedures, but do not start workers. We will start it<a name="line.814"></a>
-<span class="sourceLineNo">815</span>   * later after we finish scheduling SCPs to avoid scheduling duplicated SCPs for the same<a name="line.815"></a>
-<span class="sourceLineNo">816</span>   * server&lt;/li&gt;<a name="line.816"></a>
-<span class="sourceLineNo">817</span>   * &lt;li&gt;Create assignment manager and start it, load the meta region state, but do not load data<a name="line.817"></a>
-<span class="sourceLineNo">818</span>   * from meta region&lt;/li&gt;<a name="line.818"></a>
-<span class="sourceLineNo">819</span>   * &lt;li&gt;Start region server tracker, construct the online servers set and find out dead servers and<a name="line.819"></a>
-<span class="sourceLineNo">820</span>   * schedule SCP for them. The online servers will be constructed by scanning zk, and we will also<a name="line.820"></a>
-<span class="sourceLineNo">821</span>   * scan the wal directory to find out possible live region servers, and the differences between<a name="line.821"></a>
-<span class="sourceLineNo">822</span>   * these two sets are the dead servers&lt;/li&gt;<a name="line.822"></a>
-<span class="sourceLineNo">823</span>   * &lt;/ol&gt;<a name="line.823"></a>
-<span class="sourceLineNo">824</span>   * &lt;/li&gt;<a name="line.824"></a>
-<span class="sourceLineNo">825</span>   * &lt;li&gt;If this is a new deploy, schedule a InitMetaProcedure to initialize meta&lt;/li&gt;<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   * &lt;li&gt;Start necessary service threads - balancer, catalog janior, executor services, and also the<a name="line.826"></a>
-<span class="sourceLineNo">827</span>   * procedure executor, etc. Notice that the balancer must be created first as assignment manager<a name="line.827"></a>
-<span class="sourceLineNo">828</span>   * may use it when assigning regions.&lt;/li&gt;<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * &lt;li&gt;Wait for meta to be initialized if necesssary, start table state manager.&lt;/li&gt;<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   * &lt;li&gt;Wait for enough region servers to check-in&lt;/li&gt;<a name="line.830"></a>
-<span class="sourceLineNo">831</span>   * &lt;li&gt;Let assignment manager load data from meta and construct region states&lt;/li&gt;<a name="line.831"></a>
-<span class="sourceLineNo">832</span>   * &lt;li&gt;Start all other things such as chore services, etc&lt;/li&gt;<a name="line.832"></a>
-<span class="sourceLineNo">833</span>   * &lt;/ol&gt;<a name="line.833"></a>
-<span class="sourceLineNo">834</span>   * &lt;p/&gt;<a name="line.834"></a>
-<span class="sourceLineNo">835</span>   * Notice that now we will not schedule a special procedure to make meta online(unless the first<a name="line.835"></a>
-<span class="sourceLineNo">836</span>   * time where meta has not been created yet), we will rely on SCP to bring meta online.<a name="line.836"></a>
-<span class="sourceLineNo">837</span>   */<a name="line.837"></a>
-<span class="sourceLineNo">838</span>  private void finishActiveMasterInitialization(MonitoredTask status) throws IOException,<a name="line.838"></a>
-<span class="sourceLineNo">839</span>          InterruptedException, KeeperException, ReplicationException {<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    Thread zombieDetector = new Thread(new InitializationMonitor(this),<a name="line.840"></a>
-<span class="sourceLineNo">841</span>        "ActiveMasterInitializationMonitor-" + System.currentTimeMillis());<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    zombieDetector.setDaemon(true);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    zombieDetector.start();<a name="line.843"></a>
-<span class="sourceLineNo">844</span><a name="line.844"></a>
-<span class="sourceLineNo">845</span>    /*<a name="line.845"></a>
-<span class="sourceLineNo">846</span>     * We are active master now... go initialize components we need to run.<a name="line.846"></a>
-<span class="sourceLineNo">847</span>     */<a name="line.847"></a>
-<span class="sourceLineNo">848</span>    status.setStatus("Initializing Master file system");<a name="line.848"></a>
-<span class="sourceLineNo">849</span><a name="line.849"></a>
-<span class="sourceLineNo">850</span>    this.masterActiveTime = System.currentTimeMillis();<a name="line.850"></a>
-<span class="sourceLineNo">851</span>    // TODO: Do this using Dependency Injection, using PicoContainer, Guice or Spring.<a name="line.851"></a>
-<span class="sourceLineNo">852</span>    // Initialize the chunkCreator<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    initializeMemStoreChunkCreator();<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    this.fileSystemManager = new MasterFileSystem(conf);<a name="line.854"></a>
-<span class="sourceLineNo">855</span>    this.walManager = new MasterWalManager(this);<a name="line.855"></a>
-<span class="sourceLineNo">856</span><a name="line.856"></a>
-<span class="sourceLineNo">857</span>    // enable table descriptors cache<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    this.tableDescriptors.setCacheOn();<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>    // warm-up HTDs cache on master initialization<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    if (preLoadTableDescriptors) {<a name="line.861"></a>
-<span class="sourceLineNo">862</span>      status.setStatus("Pre-loading table descriptors");<a name="line.862"></a>
-<span class="sourceLineNo">863</span>      this.tableDescriptors.getAll();<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    }<a name="line.864"></a>
-<span class="sourceLineNo">865</span><a name="line.865"></a>
-<span class="sourceLineNo">866</span>    // Publish cluster ID; set it in Master too. The superclass RegionServer does this later but<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    // only after it has checked in with the Master. At least a few tests ask Master for clusterId<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    // before it has called its run method and before RegionServer has done the reportForDuty.<a name="line.868"></a>
-<span class="sourceLineNo">869</span>    ClusterId clusterId = fileSystemManager.getClusterId();<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    status.setStatus("Publishing Cluster ID " + clusterId + " in ZooKeeper");<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    ZKClusterId.setClusterId(this.zooKeeper, fileSystemManager.getClusterId());<a name="line.871"></a>
-<span class="sourceLineNo">872</span>    this.clusterId = clusterId.toString();<a name="line.872"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.exceptions.MergeRegionException;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.favored.FavoredNodesManager;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.favored.FavoredNodesPromoter;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.master.MasterRpcServices.BalanceSwitchMode;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.master.assignment.AssignmentManager;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.master.assignment.MergeTableRegionsProcedure;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.master.assignment.RegionStates;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.master.balancer.BalancerChore;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.master.balancer.ClusterStatusChore;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.master.cleaner.CleanerChore;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.master.cleaner.HFileCleaner;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.master.cleaner.LogCleaner;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.master.cleaner.ReplicationBarrierCleaner;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.master.locking.LockManager;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.master.normalizer.NormalizationPlan.PlanType;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizer;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.normalizer.RegionNormalizerFactory;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.master.procedure.CreateTableProcedure;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.master.procedure.DeleteNamespaceProcedure;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.master.procedure.DeleteTableProcedure;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.master.procedure.DisableTableProcedure;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.master.procedure.EnableTableProcedure;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.master.procedure.InitMetaProcedure;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureConstants;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import

<TRUNCATED>

[06/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html b/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html
index e026bb1..7bf358d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html
@@ -31,228 +31,325 @@
 <span class="sourceLineNo">023</span>import java.lang.reflect.Method;<a name="line.23"></a>
 <span class="sourceLineNo">024</span>import java.net.URL;<a name="line.24"></a>
 <span class="sourceLineNo">025</span>import java.net.URLClassLoader;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.nio.file.Path;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.nio.file.Paths;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.security.AccessController;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.security.PrivilegedAction;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.ArrayList;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.List;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.jar.JarEntry;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.util.jar.JarFile;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import java.util.stream.Collectors;<a name="line.34"></a>
-<span class="sourceLineNo">035</span><a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.Coprocessor;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.tool.PreUpgradeValidator;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.util.AbstractHBaseTool;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.slf4j.Logger;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.slf4j.LoggerFactory;<a name="line.43"></a>
-<span class="sourceLineNo">044</span><a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.ParseException;<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.49"></a>
-<span class="sourceLineNo">050</span>public class CoprocessorValidator extends AbstractHBaseTool {<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  private static final Logger LOG = LoggerFactory<a name="line.51"></a>
-<span class="sourceLineNo">052</span>      .getLogger(CoprocessorValidator.class);<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>  private CoprocessorMethods branch1;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  private CoprocessorMethods current;<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>  private boolean dieOnWarnings;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  private boolean scan;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  private List&lt;String&gt; args;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>  public CoprocessorValidator() {<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    branch1 = new Branch1CoprocessorMethods();<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    current = new CurrentCoprocessorMethods();<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>  /**<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   * This classloader implementation calls {@link #resolveClass(Class)}<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   * method for every loaded class. It means that some extra validation will<a name="line.68"></a>
-<span class="sourceLineNo">069</span>   * take place &lt;a<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   * href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.3"&gt;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>   * according to JLS&lt;/a&gt;.<a name="line.71"></a>
-<span class="sourceLineNo">072</span>   */<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private static final class ResolverUrlClassLoader extends URLClassLoader {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    private ResolverUrlClassLoader(URL[] urls) {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      super(urls, ResolverUrlClassLoader.class.getClassLoader());<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    }<a name="line.76"></a>
+<span class="sourceLineNo">026</span>import java.nio.file.Files;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.nio.file.Path;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.nio.file.Paths;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.security.AccessController;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.security.PrivilegedAction;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.util.ArrayList;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.util.Arrays;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.Collection;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Collections;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.List;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.Optional;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.regex.Pattern;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import java.util.stream.Collectors;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import java.util.stream.Stream;<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.fs.FileSystem;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.client.CoprocessorDescriptor;<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.coprocessor.CoprocessorHost;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.tool.PreUpgradeValidator;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.util.AbstractHBaseTool;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.slf4j.Logger;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.slf4j.LoggerFactory;<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.59"></a>
+<span class="sourceLineNo">060</span>public class CoprocessorValidator extends AbstractHBaseTool {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  private static final Logger LOG = LoggerFactory<a name="line.61"></a>
+<span class="sourceLineNo">062</span>      .getLogger(CoprocessorValidator.class);<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>  private CoprocessorMethods branch1;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  private CoprocessorMethods current;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  private final List&lt;String&gt; jars;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  private final List&lt;Pattern&gt; tablePatterns;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  private final List&lt;String&gt; classes;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  private boolean config;<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  private boolean dieOnWarnings;<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>  public CoprocessorValidator() {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    branch1 = new Branch1CoprocessorMethods();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    current = new CurrentCoprocessorMethods();<a name="line.76"></a>
 <span class="sourceLineNo">077</span><a name="line.77"></a>
-<span class="sourceLineNo">078</span>    @Override<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    public Class&lt;?&gt; loadClass(String name) throws ClassNotFoundException {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      return loadClass(name, true);<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><a name="line.83"></a>
-<span class="sourceLineNo">084</span>  private ResolverUrlClassLoader createClassLoader(URL[] urls) {<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    return AccessController.doPrivileged(new PrivilegedAction&lt;ResolverUrlClassLoader&gt;() {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      @Override<a name="line.86"></a>
-<span class="sourceLineNo">087</span>      public ResolverUrlClassLoader run() {<a name="line.87"></a>
-<span class="sourceLineNo">088</span>        return new ResolverUrlClassLoader(urls);<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><a name="line.92"></a>
-<span class="sourceLineNo">093</span>  private void validate(ClassLoader classLoader, String className,<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      List&lt;CoprocessorViolation&gt; violations) {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    LOG.debug("Validating class '{}'.", className);<a name="line.95"></a>
-<span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span>    try {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      Class&lt;?&gt; clazz = classLoader.loadClass(className);<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>      for (Method method : clazz.getDeclaredMethods()) {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>        LOG.trace("Validating method '{}'.", method);<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>        if (branch1.hasMethod(method) &amp;&amp; !current.hasMethod(method)) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>          CoprocessorViolation violation = new CoprocessorViolation(Severity.WARNING,<a name="line.104"></a>
-<span class="sourceLineNo">105</span>              "Method '" + method + "' was removed from new coprocessor API, "<a name="line.105"></a>
-<span class="sourceLineNo">106</span>                  + "so it won't be called by HBase.");<a name="line.106"></a>
-<span class="sourceLineNo">107</span>          violations.add(violation);<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>    } catch (ClassNotFoundException e) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      CoprocessorViolation violation = new CoprocessorViolation(Severity.ERROR,<a name="line.111"></a>
-<span class="sourceLineNo">112</span>          "No such class '" + className + "'.", e);<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      violations.add(violation);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    } catch (RuntimeException | Error e) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      CoprocessorViolation violation = new CoprocessorViolation(Severity.ERROR,<a name="line.115"></a>
-<span class="sourceLineNo">116</span>          "Could not validate class '" + className + "'.", e);<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      violations.add(violation);<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    }<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  }<a name="line.119"></a>
+<span class="sourceLineNo">078</span>    jars = new ArrayList&lt;&gt;();<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    tablePatterns = new ArrayList&lt;&gt;();<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    classes = new ArrayList&lt;&gt;();<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>  /**<a name="line.83"></a>
+<span class="sourceLineNo">084</span>   * This classloader implementation calls {@link #resolveClass(Class)}<a name="line.84"></a>
+<span class="sourceLineNo">085</span>   * method for every loaded class. It means that some extra validation will<a name="line.85"></a>
+<span class="sourceLineNo">086</span>   * take place &lt;a<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   * href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.3"&gt;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>   * according to JLS&lt;/a&gt;.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  private static final class ResolverUrlClassLoader extends URLClassLoader {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    private ResolverUrlClassLoader(URL[] urls, ClassLoader parent) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      super(urls, parent);<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>    @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    public Class&lt;?&gt; loadClass(String name) throws ClassNotFoundException {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      return loadClass(name, true);<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>  private ResolverUrlClassLoader createClassLoader(URL[] urls) {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    return createClassLoader(urls, getClass().getClassLoader());<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>  private ResolverUrlClassLoader createClassLoader(URL[] urls, ClassLoader parent) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    return AccessController.doPrivileged(new PrivilegedAction&lt;ResolverUrlClassLoader&gt;() {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      @Override<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      public ResolverUrlClassLoader run() {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>        return new ResolverUrlClassLoader(urls, parent);<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>  }<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>  private ResolverUrlClassLoader createClassLoader(ClassLoader parent,<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      org.apache.hadoop.fs.Path path) throws IOException {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    Path tempPath = Files.createTempFile("hbase-coprocessor-", ".jar");<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    org.apache.hadoop.fs.Path destination = new org.apache.hadoop.fs.Path(tempPath.toString());<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>    LOG.debug("Copying coprocessor jar '{}' to '{}'.", path, tempPath);<a name="line.119"></a>
 <span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>  public List&lt;CoprocessorViolation&gt; validate(ClassLoader classLoader, List&lt;String&gt; classNames) {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    List&lt;CoprocessorViolation&gt; violations = new ArrayList&lt;&gt;();<a name="line.122"></a>
+<span class="sourceLineNo">121</span>    FileSystem fileSystem = FileSystem.get(getConf());<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    fileSystem.copyToLocalFile(path, destination);<a name="line.122"></a>
 <span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>    for (String className : classNames) {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      validate(classLoader, className, violations);<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>    return violations;<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>  public List&lt;CoprocessorViolation&gt; validate(List&lt;URL&gt; urls, List&lt;String&gt; classNames)<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      throws IOException {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    URL[] urlArray = new URL[urls.size()];<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    urls.toArray(urlArray);<a name="line.134"></a>
+<span class="sourceLineNo">124</span>    URL url = tempPath.toUri().toURL();<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>    return createClassLoader(new URL[] { url }, parent);<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>  private void validate(ClassLoader classLoader, String className,<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      List&lt;CoprocessorViolation&gt; violations) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    LOG.debug("Validating class '{}'.", className);<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>    try {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      Class&lt;?&gt; clazz = classLoader.loadClass(className);<a name="line.134"></a>
 <span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    try (ResolverUrlClassLoader classLoader = createClassLoader(urlArray)) {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      return validate(classLoader, classNames);<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><a name="line.140"></a>
-<span class="sourceLineNo">141</span>  @VisibleForTesting<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  protected List&lt;String&gt; getJarClasses(Path path) throws IOException {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    try (JarFile jarFile = new JarFile(path.toFile())) {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      return jarFile.stream()<a name="line.144"></a>
-<span class="sourceLineNo">145</span>          .map(JarEntry::getName)<a name="line.145"></a>
-<span class="sourceLineNo">146</span>          .filter((name) -&gt; name.endsWith(".class"))<a name="line.146"></a>
-<span class="sourceLineNo">147</span>          .map((name) -&gt; name.substring(0, name.length() - 6).replace('/', '.'))<a name="line.147"></a>
-<span class="sourceLineNo">148</span>          .collect(Collectors.toList());<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><a name="line.151"></a>
-<span class="sourceLineNo">152</span>  @VisibleForTesting<a name="line.152"></a>
-<span class="sourceLineNo">153</span>  protected List&lt;String&gt; filterObservers(ClassLoader classLoader,<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      Iterable&lt;String&gt; classNames) throws ClassNotFoundException {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    List&lt;String&gt; filteredClassNames = new ArrayList&lt;&gt;();<a name="line.155"></a>
+<span class="sourceLineNo">136</span>      for (Method method : clazz.getDeclaredMethods()) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        LOG.trace("Validating method '{}'.", method);<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>        if (branch1.hasMethod(method) &amp;&amp; !current.hasMethod(method)) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>          CoprocessorViolation violation = new CoprocessorViolation(<a name="line.140"></a>
+<span class="sourceLineNo">141</span>              className, Severity.WARNING, "method '" + method +<a name="line.141"></a>
+<span class="sourceLineNo">142</span>              "' was removed from new coprocessor API, so it won't be called by HBase");<a name="line.142"></a>
+<span class="sourceLineNo">143</span>          violations.add(violation);<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>    } catch (ClassNotFoundException e) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      CoprocessorViolation violation = new CoprocessorViolation(<a name="line.147"></a>
+<span class="sourceLineNo">148</span>          className, Severity.ERROR, "no such class", e);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      violations.add(violation);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    } catch (RuntimeException | Error e) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      CoprocessorViolation violation = new CoprocessorViolation(<a name="line.151"></a>
+<span class="sourceLineNo">152</span>          className, Severity.ERROR, "could not validate class", e);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      violations.add(violation);<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>    for (String className : classNames) {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      LOG.debug("Scanning class '{}'.", className);<a name="line.158"></a>
-<span class="sourceLineNo">159</span><a name="line.159"></a>
-<span class="sourceLineNo">160</span>      Class&lt;?&gt; clazz = classLoader.loadClass(className);<a name="line.160"></a>
-<span class="sourceLineNo">161</span><a name="line.161"></a>
-<span class="sourceLineNo">162</span>      if (Coprocessor.class.isAssignableFrom(clazz)) {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>        LOG.debug("Found coprocessor class '{}'.", className);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        filteredClassNames.add(className);<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 filteredClassNames;<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>  @Override<a name="line.171"></a>
-<span class="sourceLineNo">172</span>  protected void printUsage() {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    String header = "hbase " + PreUpgradeValidator.TOOL_NAME + " " +<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        PreUpgradeValidator.VALIDATE_CP_NAME + " &lt;jar&gt; -scan|&lt;classes&gt;";<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    printUsage(header, "Options:", "");<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>  @Override<a name="line.178"></a>
-<span class="sourceLineNo">179</span>  protected void addOptions() {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    addOptNoArg("e", "Treat warnings as errors.");<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    addOptNoArg("scan", "Scan jar for observers.");<a name="line.181"></a>
-<span class="sourceLineNo">182</span>  }<a name="line.182"></a>
+<span class="sourceLineNo">157</span>  public void validateClasses(ClassLoader classLoader, List&lt;String&gt; classNames,<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      List&lt;CoprocessorViolation&gt; violations) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    for (String className : classNames) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      validate(classLoader, className, violations);<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><a name="line.163"></a>
+<span class="sourceLineNo">164</span>  public void validateClasses(ClassLoader classLoader, String[] classNames,<a name="line.164"></a>
+<span class="sourceLineNo">165</span>      List&lt;CoprocessorViolation&gt; violations) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    validateClasses(classLoader, Arrays.asList(classNames), violations);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>  @VisibleForTesting<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  protected void validateTables(ClassLoader classLoader, Admin admin,<a name="line.170"></a>
+<span class="sourceLineNo">171</span>      Pattern pattern, List&lt;CoprocessorViolation&gt; violations) throws IOException {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    List&lt;TableDescriptor&gt; tableDescriptors = admin.listTableDescriptors(pattern);<a name="line.172"></a>
+<span class="sourceLineNo">173</span><a name="line.173"></a>
+<span class="sourceLineNo">174</span>    for (TableDescriptor tableDescriptor : tableDescriptors) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      LOG.debug("Validating table {}", tableDescriptor.getTableName());<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>      Collection&lt;CoprocessorDescriptor&gt; coprocessorDescriptors =<a name="line.177"></a>
+<span class="sourceLineNo">178</span>          tableDescriptor.getCoprocessorDescriptors();<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>      for (CoprocessorDescriptor coprocessorDescriptor : coprocessorDescriptors) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        String className = coprocessorDescriptor.getClassName();<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        Optional&lt;String&gt; jarPath = coprocessorDescriptor.getJarPath();<a name="line.182"></a>
 <span class="sourceLineNo">183</span><a name="line.183"></a>
-<span class="sourceLineNo">184</span>  @Override<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  protected void processOptions(CommandLine cmd) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    scan = cmd.hasOption("scan");<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    dieOnWarnings = cmd.hasOption("e");<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    args = cmd.getArgList();<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>  @Override<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  protected int doWork() throws Exception {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    if (args.size() &lt; 1) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      System.err.println("Missing jar file.");<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      printUsage();<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      return EXIT_FAILURE;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    }<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>    String jar = args.get(0);<a name="line.199"></a>
+<span class="sourceLineNo">184</span>        if (jarPath.isPresent()) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>          org.apache.hadoop.fs.Path path = new org.apache.hadoop.fs.Path(jarPath.get());<a name="line.185"></a>
+<span class="sourceLineNo">186</span>          try (ResolverUrlClassLoader cpClassLoader = createClassLoader(classLoader, path)) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>            validate(cpClassLoader, className, violations);<a name="line.187"></a>
+<span class="sourceLineNo">188</span>          } catch (IOException e) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>            CoprocessorViolation violation = new CoprocessorViolation(<a name="line.189"></a>
+<span class="sourceLineNo">190</span>                className, Severity.ERROR,<a name="line.190"></a>
+<span class="sourceLineNo">191</span>                "could not validate jar file '" + path + "'", e);<a name="line.191"></a>
+<span class="sourceLineNo">192</span>            violations.add(violation);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>          }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        } else {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>          validate(classLoader, className, violations);<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>    }<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>    if (args.size() == 1 &amp;&amp; !scan) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      throw new ParseException("Missing classes or -scan option.");<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    } else if (args.size() &gt; 1 &amp;&amp; scan) {<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      throw new ParseException("Can't use classes with -scan option.");<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    }<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>    Path jarPath = Paths.get(jar);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    URL[] urls = new URL[] { jarPath.toUri().toURL() };<a name="line.208"></a>
-<span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span>    List&lt;CoprocessorViolation&gt; violations;<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>    try (ResolverUrlClassLoader classLoader = createClassLoader(urls)) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      List&lt;String&gt; classNames;<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>      if (scan) {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>        List&lt;String&gt; jarClassNames = getJarClasses(jarPath);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        classNames = filterObservers(classLoader, jarClassNames);<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      } else {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>        classNames = args.subList(1, args.size());<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>      violations = validate(classLoader, classNames);<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>    boolean error = false;<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>    for (CoprocessorViolation violation : violations) {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      switch (violation.getSeverity()) {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        case WARNING:<a name="line.229"></a>
-<span class="sourceLineNo">230</span>          System.err.println("[WARNING] " + violation.getMessage());<a name="line.230"></a>
-<span class="sourceLineNo">231</span><a name="line.231"></a>
-<span class="sourceLineNo">232</span>          if (dieOnWarnings) {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>            error = true;<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>          break;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        case ERROR:<a name="line.237"></a>
-<span class="sourceLineNo">238</span>          System.err.println("[ERROR] " + violation.getMessage());<a name="line.238"></a>
-<span class="sourceLineNo">239</span>          error = true;<a name="line.239"></a>
-<span class="sourceLineNo">240</span><a name="line.240"></a>
-<span class="sourceLineNo">241</span>          break;<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>    return (error) ? EXIT_FAILURE : EXIT_SUCCESS;<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
-<span class="sourceLineNo">247</span>}<a name="line.247"></a>
+<span class="sourceLineNo">201</span>  private void validateTables(ClassLoader classLoader, Pattern pattern,<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      List&lt;CoprocessorViolation&gt; violations) throws IOException {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    try (Connection connection = ConnectionFactory.createConnection(getConf());<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        Admin admin = connection.getAdmin()) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      validateTables(classLoader, admin, pattern, violations);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    }<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>  @Override<a name="line.209"></a>
+<span class="sourceLineNo">210</span>  protected void printUsage() {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    String header = "hbase " + PreUpgradeValidator.TOOL_NAME + " " +<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        PreUpgradeValidator.VALIDATE_CP_NAME +<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        " [-jar ...] [-class ... | -table ... | -config]";<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    printUsage(header, "Options:", "");<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>  @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  protected void addOptions() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    addOptNoArg("e", "Treat warnings as errors.");<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    addOptWithArg("jar", "Jar file/directory of the coprocessor.");<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    addOptWithArg("table", "Table coprocessor(s) to check.");<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    addOptWithArg("class", "Coprocessor class(es) to check.");<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    addOptNoArg("config", "Obtain coprocessor class(es) from configuration.");<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>  @Override<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  protected void processOptions(CommandLine cmd) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    String[] jars = cmd.getOptionValues("jar");<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    if (jars != null) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      Collections.addAll(this.jars, jars);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>    String[] tables = cmd.getOptionValues("table");<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    if (tables != null) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      Arrays.stream(tables).map(Pattern::compile).forEach(tablePatterns::add);<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>    String[] classes = cmd.getOptionValues("class");<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    if (classes != null) {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      Collections.addAll(this.classes, classes);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>    config = cmd.hasOption("config");<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    dieOnWarnings = cmd.hasOption("e");<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>  private List&lt;URL&gt; buildClasspath(List&lt;String&gt; jars) throws IOException {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    List&lt;URL&gt; urls = new ArrayList&lt;&gt;();<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>    for (String jar : jars) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      Path jarPath = Paths.get(jar);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      if (Files.isDirectory(jarPath)) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        try (Stream&lt;Path&gt; stream = Files.list(jarPath)) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>          List&lt;Path&gt; files = stream<a name="line.254"></a>
+<span class="sourceLineNo">255</span>              .filter((path) -&gt; Files.isRegularFile(path))<a name="line.255"></a>
+<span class="sourceLineNo">256</span>              .collect(Collectors.toList());<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>          for (Path file : files) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>            URL url = file.toUri().toURL();<a name="line.259"></a>
+<span class="sourceLineNo">260</span>            urls.add(url);<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>      } else {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        URL url = jarPath.toUri().toURL();<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        urls.add(url);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      }<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>    return urls;<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>  @Override<a name="line.272"></a>
+<span class="sourceLineNo">273</span>  protected int doWork() throws Exception {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    if (tablePatterns.isEmpty() &amp;&amp; classes.isEmpty() &amp;&amp; !config) {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      LOG.error("Please give at least one -table, -class or -config parameter.");<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      printUsage();<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      return EXIT_FAILURE;<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>    List&lt;URL&gt; urlList = buildClasspath(jars);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    URL[] urls = urlList.toArray(new URL[urlList.size()]);<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>    LOG.debug("Classpath: {}", urlList);<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>    List&lt;CoprocessorViolation&gt; violations = new ArrayList&lt;&gt;();<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span>    try (ResolverUrlClassLoader classLoader = createClassLoader(urls)) {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      for (Pattern tablePattern : tablePatterns) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        validateTables(classLoader, tablePattern, violations);<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>      validateClasses(classLoader, classes, violations);<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span>      if (config) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        String[] masterCoprocessors =<a name="line.295"></a>
+<span class="sourceLineNo">296</span>            getConf().getStrings(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>        if (masterCoprocessors != null) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>          validateClasses(classLoader, masterCoprocessors, violations);<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        }<a name="line.299"></a>
+<span class="sourceLineNo">300</span><a name="line.300"></a>
+<span class="sourceLineNo">301</span>        String[] regionCoprocessors =<a name="line.301"></a>
+<span class="sourceLineNo">302</span>            getConf().getStrings(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        if (regionCoprocessors != null) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>          validateClasses(classLoader, regionCoprocessors, violations);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        }<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>    boolean error = false;<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>    for (CoprocessorViolation violation : violations) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>      String className = violation.getClassName();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>      String message = violation.getMessage();<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      Throwable throwable = violation.getThrowable();<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>      switch (violation.getSeverity()) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>        case WARNING:<a name="line.317"></a>
+<span class="sourceLineNo">318</span>          if (throwable == null) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>            LOG.warn("Warning in class '{}': {}.", className, message);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>          } else {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>            LOG.warn("Warning in class '{}': {}.", className, message, throwable);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>          }<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>          if (dieOnWarnings) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>            error = true;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>          }<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>          break;<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        case ERROR:<a name="line.329"></a>
+<span class="sourceLineNo">330</span>          if (throwable == null) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>            LOG.error("Error in class '{}': {}.", className, message);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>          } else {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>            LOG.error("Error in class '{}': {}.", className, message, throwable);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>          }<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span>          error = true;<a name="line.336"></a>
+<span class="sourceLineNo">337</span><a name="line.337"></a>
+<span class="sourceLineNo">338</span>          break;<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><a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return (error) ? EXIT_FAILURE : EXIT_SUCCESS;<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>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html b/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html
index b07f186..90c7b03 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.Severity.html
@@ -29,7 +29,7 @@
 <span class="sourceLineNo">021</span><a name="line.21"></a>
 <span class="sourceLineNo">022</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.22"></a>
 <span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.24"></a>
+<span class="sourceLineNo">024</span>import org.apache.hbase.thirdparty.com.google.common.base.MoreObjects;<a name="line.24"></a>
 <span class="sourceLineNo">025</span><a name="line.25"></a>
 <span class="sourceLineNo">026</span>@InterfaceAudience.Private<a name="line.26"></a>
 <span class="sourceLineNo">027</span>public class CoprocessorViolation {<a name="line.27"></a>
@@ -37,31 +37,49 @@
 <span class="sourceLineNo">029</span>    WARNING, ERROR<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>  private final Severity severity;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>  private final String message;<a name="line.33"></a>
-<span class="sourceLineNo">034</span><a name="line.34"></a>
-<span class="sourceLineNo">035</span>  public CoprocessorViolation(Severity severity, String message) {<a name="line.35"></a>
-<span class="sourceLineNo">036</span>    this(severity, message, null);<a name="line.36"></a>
-<span class="sourceLineNo">037</span>  }<a name="line.37"></a>
-<span class="sourceLineNo">038</span><a name="line.38"></a>
-<span class="sourceLineNo">039</span>  public CoprocessorViolation(Severity severity, String message, Throwable t) {<a name="line.39"></a>
-<span class="sourceLineNo">040</span>    this.severity = severity;<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>    if (t == null) {<a name="line.42"></a>
-<span class="sourceLineNo">043</span>      this.message = message;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>    } else {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>      this.message = message + "\n" + Throwables.getStackTraceAsString(t);<a name="line.45"></a>
-<span class="sourceLineNo">046</span>    }<a name="line.46"></a>
+<span class="sourceLineNo">032</span>  private final String className;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>  private final Severity severity;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>  private final String message;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>  private final Throwable throwable;<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>  public CoprocessorViolation(String className, Severity severity, String message) {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>    this(className, severity, message, null);<a name="line.38"></a>
+<span class="sourceLineNo">039</span>  }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>  public CoprocessorViolation(String className, Severity severity, String message,<a name="line.41"></a>
+<span class="sourceLineNo">042</span>      Throwable t) {<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    this.className = className;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    this.severity = severity;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    this.message = message;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    this.throwable = t;<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">049</span>  public Severity getSeverity() {<a name="line.49"></a>
-<span class="sourceLineNo">050</span>    return severity;<a name="line.50"></a>
+<span class="sourceLineNo">049</span>  public String getClassName() {<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    return className;<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>  public String getMessage() {<a name="line.53"></a>
-<span class="sourceLineNo">054</span>    return message;<a name="line.54"></a>
+<span class="sourceLineNo">053</span>  public Severity getSeverity() {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    return severity;<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">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>  public String getMessage() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    return message;<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 Throwable getThrowable() {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    return throwable;<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>  @Override<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  public String toString() {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    return MoreObjects.toStringHelper(this)<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        .add("className", className)<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        .add("severity", severity)<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        .add("message", message)<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        .add("throwable", throwable)<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        .toString();<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>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html b/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html
index b07f186..90c7b03 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorViolation.html
@@ -29,7 +29,7 @@
 <span class="sourceLineNo">021</span><a name="line.21"></a>
 <span class="sourceLineNo">022</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.22"></a>
 <span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.24"></a>
+<span class="sourceLineNo">024</span>import org.apache.hbase.thirdparty.com.google.common.base.MoreObjects;<a name="line.24"></a>
 <span class="sourceLineNo">025</span><a name="line.25"></a>
 <span class="sourceLineNo">026</span>@InterfaceAudience.Private<a name="line.26"></a>
 <span class="sourceLineNo">027</span>public class CoprocessorViolation {<a name="line.27"></a>
@@ -37,31 +37,49 @@
 <span class="sourceLineNo">029</span>    WARNING, ERROR<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>  private final Severity severity;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>  private final String message;<a name="line.33"></a>
-<span class="sourceLineNo">034</span><a name="line.34"></a>
-<span class="sourceLineNo">035</span>  public CoprocessorViolation(Severity severity, String message) {<a name="line.35"></a>
-<span class="sourceLineNo">036</span>    this(severity, message, null);<a name="line.36"></a>
-<span class="sourceLineNo">037</span>  }<a name="line.37"></a>
-<span class="sourceLineNo">038</span><a name="line.38"></a>
-<span class="sourceLineNo">039</span>  public CoprocessorViolation(Severity severity, String message, Throwable t) {<a name="line.39"></a>
-<span class="sourceLineNo">040</span>    this.severity = severity;<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>    if (t == null) {<a name="line.42"></a>
-<span class="sourceLineNo">043</span>      this.message = message;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>    } else {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>      this.message = message + "\n" + Throwables.getStackTraceAsString(t);<a name="line.45"></a>
-<span class="sourceLineNo">046</span>    }<a name="line.46"></a>
+<span class="sourceLineNo">032</span>  private final String className;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>  private final Severity severity;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>  private final String message;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>  private final Throwable throwable;<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>  public CoprocessorViolation(String className, Severity severity, String message) {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>    this(className, severity, message, null);<a name="line.38"></a>
+<span class="sourceLineNo">039</span>  }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>  public CoprocessorViolation(String className, Severity severity, String message,<a name="line.41"></a>
+<span class="sourceLineNo">042</span>      Throwable t) {<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    this.className = className;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    this.severity = severity;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    this.message = message;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    this.throwable = t;<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">049</span>  public Severity getSeverity() {<a name="line.49"></a>
-<span class="sourceLineNo">050</span>    return severity;<a name="line.50"></a>
+<span class="sourceLineNo">049</span>  public String getClassName() {<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    return className;<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>  public String getMessage() {<a name="line.53"></a>
-<span class="sourceLineNo">054</span>    return message;<a name="line.54"></a>
+<span class="sourceLineNo">053</span>  public Severity getSeverity() {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    return severity;<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">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>  public String getMessage() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    return message;<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 Throwable getThrowable() {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    return throwable;<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>  @Override<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  public String toString() {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    return MoreObjects.toStringHelper(this)<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        .add("className", className)<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        .add("severity", severity)<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        .add("message", message)<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        .add("throwable", throwable)<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        .toString();<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>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/downloads.html
----------------------------------------------------------------------
diff --git a/downloads.html b/downloads.html
index d07fe99..f09c20d 100644
--- a/downloads.html
+++ b/downloads.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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase Downloads</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -404,7 +404,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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/export_control.html
----------------------------------------------------------------------
diff --git a/export_control.html b/export_control.html
index c2eb868..0aecb45 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index 5e5d0d0..2d47d1c 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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" />
@@ -411,7 +411,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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index 3998121..133cf7e 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index e602866..1c3342d 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index 5ef7d8a..f0ab58b 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index cd5a571..1463f7a 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/metrics.html
----------------------------------------------------------------------
diff --git a/metrics.html b/metrics.html
index f9732cb..2092bc9 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/old_news.html
----------------------------------------------------------------------
diff --git a/old_news.html b/old_news.html
index e0da645..a9b3be3 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index 900ab4f..c86959f 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index 63af7d3..7da7f83 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/poweredbyhbase.html
----------------------------------------------------------------------
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index eda8ac8..f48d113 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index f27f36a..a56d131 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index 0adfc1f..0723606 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index df34c7c..27ba950 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/pseudo-distributed.html
----------------------------------------------------------------------
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index 3f4ccf6..24f6fb8 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/replication.html
----------------------------------------------------------------------
diff --git a/replication.html b/replication.html
index b733df9..5a24344 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/resources.html
----------------------------------------------------------------------
diff --git a/resources.html b/resources.html
index e812654..52466db 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index 48ac08c..4630c1c 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/sponsors.html
----------------------------------------------------------------------
diff --git a/sponsors.html b/sponsors.html
index 78bdd7e..6c4beb5 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/supportingprojects.html
----------------------------------------------------------------------
diff --git a/supportingprojects.html b/supportingprojects.html
index 06154fa..a6c4b97 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="20180709" />
+    <meta name="Date-Revision-yyyymmdd" content="20180710" />
     <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-07-09</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-07-10</li>
             </p>
                 </div>
 


[04/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html b/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html
index dfc009b..95db0a4 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var methods = {"i0":9,"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";
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.44">CoprocessorValidatorTest</a>
+<pre>public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.60">CoprocessorValidatorTest</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>
@@ -145,10 +145,6 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colFirst"><code>private static class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest.ObsoleteMethodObserver</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>private static class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest.TestObserver</a></span></code>&nbsp;</td>
-</tr>
 </table>
 </li>
 </ul>
@@ -214,28 +210,41 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </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/tool/coprocessor/CoprocessorValidatorTest.html#testFilterObservers--">testFilterObservers</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#testMissingClass--">testMissingClass</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/tool/coprocessor/CoprocessorValidatorTest.html#testMissingClass--">testMissingClass</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#testNoSuchClass--">testNoSuchClass</a></span>()</code>&nbsp;</td>
 </tr>
 <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/tool/coprocessor/CoprocessorValidatorTest.html#testNoSuchClass--">testNoSuchClass</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#testObsoleteMethod--">testObsoleteMethod</a></span>()</code>&nbsp;</td>
 </tr>
 <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/tool/coprocessor/CoprocessorValidatorTest.html#testObsoleteMethod--">testObsoleteMethod</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#testTableMissingJar--">testTableMissingJar</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i6" class="altColor">
-<td class="colFirst"><code>private <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.tool.coprocessor.CoprocessorViolation&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#validate-java.lang.ClassLoader-java.lang.String-">validate</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
-        <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;className)</code>&nbsp;</td>
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#testTableNoSuchClass--">testTableNoSuchClass</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/tool/coprocessor/CoprocessorValidatorTest.html#testTableValidJar--">testTableValidJar</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>private <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.tool.coprocessor.CoprocessorViolation&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#validateClass-java.lang.ClassLoader-java.lang.String-">validateClass</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
+             <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;className)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>private <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.tool.coprocessor.CoprocessorViolation&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#validateClass-java.lang.String-">validateClass</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;className)</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>private <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.tool.coprocessor.CoprocessorViolation&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#validate-java.lang.String-">validate</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;className)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#validateTable-java.lang.String-java.lang.String-">validateTable</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;jarFile,
+             <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;className)</code>&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
@@ -265,7 +274,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/tool/coprocessor/CoprocessorValidatorTest.html#line.46">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/tool/coprocessor/CoprocessorValidatorTest.html#line.62">CLASS_RULE</a></pre>
 </li>
 </ul>
 <a name="validator">
@@ -274,7 +283,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>validator</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidator <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.49">validator</a></pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidator <a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.65">validator</a></pre>
 </li>
 </ul>
 </li>
@@ -291,7 +300,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CoprocessorValidatorTest</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.51">CoprocessorValidatorTest</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.67">CoprocessorValidatorTest</a>()</pre>
 </li>
 </ul>
 </li>
@@ -308,7 +317,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getClassLoader</h4>
-<pre>private static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.55">getClassLoader</a>()</pre>
+<pre>private static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.72">getClassLoader</a>()</pre>
 </li>
 </ul>
 <a name="getFullClassName-java.lang.String-">
@@ -317,78 +326,121 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getFullClassName</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>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.59">getFullClassName</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;className)</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>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.76">getFullClassName</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;className)</pre>
+</li>
+</ul>
+<a name="validateClass-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>validateClass</h4>
+<pre>private&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.tool.coprocessor.CoprocessorViolation&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.80">validateClass</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;className)</pre>
+</li>
+</ul>
+<a name="validateClass-java.lang.ClassLoader-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>validateClass</h4>
+<pre>private&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.tool.coprocessor.CoprocessorViolation&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.85">validateClass</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
+                                                                                          <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;className)</pre>
+</li>
+</ul>
+<a name="testNoSuchClass--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testNoSuchClass</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.98">testNoSuchClass</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="testFilterObservers--">
+<a name="testMissingClass--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>testFilterObservers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.75">testFilterObservers</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>
+<h4>testMissingClass</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.144">testMissingClass</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/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></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>
 </ul>
-<a name="validate-java.lang.String-">
+<a name="testObsoleteMethod--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>validate</h4>
-<pre>private&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.tool.coprocessor.CoprocessorViolation&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.85">validate</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;className)</pre>
+<h4>testObsoleteMethod</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.172">testObsoleteMethod</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="validate-java.lang.ClassLoader-java.lang.String-">
+<a name="validateTable-java.lang.String-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>validate</h4>
-<pre>private&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.tool.coprocessor.CoprocessorViolation&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.90">validate</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
-                                                                                     <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;className)</pre>
+<h4>validateTable</h4>
+<pre>private&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.tool.coprocessor.CoprocessorViolation&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.182">validateTable</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;jarFile,
+                                                                                          <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;className)
+                                                                                   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="testNoSuchClass--">
+<a name="testTableNoSuchClass--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>testNoSuchClass</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.99">testNoSuchClass</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>
+<h4>testTableNoSuchClass</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.208">testTableNoSuchClass</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="testMissingClass--">
+<a name="testTableMissingJar--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>testMissingClass</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.143">testMissingClass</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>
+<h4>testTableMissingJar</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.222">testTableMissingJar</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="testObsoleteMethod--">
+<a name="testTableValidJar--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>testObsoleteMethod</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.169">testObsoleteMethod</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>
+<h4>testTableValidJar</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.html#line.233">testTableValidJar</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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/class-use/CoprocessorValidatorTest.TestObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/class-use/CoprocessorValidatorTest.TestObserver.html b/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/class-use/CoprocessorValidatorTest.TestObserver.html
deleted file mode 100644
index 1f99844..0000000
--- a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/class-use/CoprocessorValidatorTest.TestObserver.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!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.tool.coprocessor.CoprocessorValidatorTest.TestObserver (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.tool.coprocessor.CoprocessorValidatorTest.TestObserver (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/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">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/tool/coprocessor/class-use/CoprocessorValidatorTest.TestObserver.html" target="_top">Frames</a></li>
-<li><a href="CoprocessorValidatorTest.TestObserver.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.tool.coprocessor.CoprocessorValidatorTest.TestObserver" class="title">Uses of Class<br>org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest.TestObserver</h2>
-</div>
-<div class="classUseContainer">No usage of org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest.TestObserver</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/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">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/tool/coprocessor/class-use/CoprocessorValidatorTest.TestObserver.html" target="_top">Frames</a></li>
-<li><a href="CoprocessorValidatorTest.TestObserver.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/dbe3a233/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/package-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/package-frame.html b/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/package-frame.html
index 91e6a0d..9229e71 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/package-frame.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/package-frame.html
@@ -18,7 +18,6 @@
 <li><a href="CoprocessorValidatorTest.MissingClassClassLoader.html" title="class in org.apache.hadoop.hbase.tool.coprocessor" target="classFrame">CoprocessorValidatorTest.MissingClassClassLoader</a></li>
 <li><a href="CoprocessorValidatorTest.MissingClassObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor" target="classFrame">CoprocessorValidatorTest.MissingClassObserver</a></li>
 <li><a href="CoprocessorValidatorTest.ObsoleteMethodObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor" target="classFrame">CoprocessorValidatorTest.ObsoleteMethodObserver</a></li>
-<li><a href="CoprocessorValidatorTest.TestObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor" target="classFrame">CoprocessorValidatorTest.TestObserver</a></li>
 </ul>
 </div>
 </body>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/package-summary.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/package-summary.html b/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/package-summary.html
index 7333b4c..d7d6340 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/package-summary.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/package-summary.html
@@ -102,10 +102,6 @@
 <td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest.ObsoleteMethodObserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidatorTest.TestObserver</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/package-tree.html
index 9d456bb..e716ff0 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/tool/coprocessor/package-tree.html
@@ -90,7 +90,6 @@
 <li type="circle">org.apache.hadoop.hbase.tool.coprocessor.<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClass.html" title="class in org.apache.hadoop.hbase.tool.coprocessor"><span class="typeNameLink">CoprocessorValidatorTest.MissingClass</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.tool.coprocessor.<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor"><span class="typeNameLink">CoprocessorValidatorTest.MissingClassObserver</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.tool.coprocessor.<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor"><span class="typeNameLink">CoprocessorValidatorTest.ObsoleteMethodObserver</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.tool.coprocessor.<a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor"><span class="typeNameLink">CoprocessorValidatorTest.TestObserver</span></a> (implements org.apache.hadoop.hbase.Coprocessor)</li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
index 5282059..9e0700e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -141,9 +141,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.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">IOTestProvider.AllowedOperations</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/FaultyFSLog.FailureType.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">FaultyFSLog.FailureType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/TestWALSplit.Corruptions.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">TestWALSplit.Corruptions</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/FaultyFSLog.FailureType.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">FaultyFSLog.FailureType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">IOTestProvider.AllowedOperations</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/overview-tree.html b/testdevapidocs/overview-tree.html
index 32a7a5d..3e0e183 100644
--- a/testdevapidocs/overview-tree.html
+++ b/testdevapidocs/overview-tree.html
@@ -916,7 +916,6 @@
 <li type="circle">org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClass.html" title="class in org.apache.hadoop.hbase.tool.coprocessor"><span class="typeNameLink">CoprocessorValidatorTest.MissingClass</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClassObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor"><span class="typeNameLink">CoprocessorValidatorTest.MissingClassObserver</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.ObsoleteMethodObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor"><span class="typeNameLink">CoprocessorValidatorTest.ObsoleteMethodObserver</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.TestObserver.html" title="class in org.apache.hadoop.hbase.tool.coprocessor"><span class="typeNameLink">CoprocessorValidatorTest.TestObserver</span></a> (implements org.apache.hadoop.hbase.Coprocessor)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CreateRandomStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CreateRandomStoreFile</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.DefaultStoreFlusher

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestClockSkewDetection.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestClockSkewDetection.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestClockSkewDetection.html
index 09f76e5..f868b55 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestClockSkewDetection.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestClockSkewDetection.html
@@ -74,7 +74,7 @@
 <span class="sourceLineNo">066</span>    request.setPort(1234);<a name="line.66"></a>
 <span class="sourceLineNo">067</span>    request.setServerStartCode(-1);<a name="line.67"></a>
 <span class="sourceLineNo">068</span>    request.setServerCurrentTime(System.currentTimeMillis());<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    sm.regionServerStartup(request.build(), 0, ia1);<a name="line.69"></a>
+<span class="sourceLineNo">069</span>    sm.regionServerStartup(request.build(), 0, "0.0.0", ia1);<a name="line.69"></a>
 <span class="sourceLineNo">070</span><a name="line.70"></a>
 <span class="sourceLineNo">071</span>    final Configuration c = HBaseConfiguration.create();<a name="line.71"></a>
 <span class="sourceLineNo">072</span>    long maxSkew = c.getLong("hbase.master.maxclockskew", 30000);<a name="line.72"></a>
@@ -89,7 +89,7 @@
 <span class="sourceLineNo">081</span>      request.setPort(1235);<a name="line.81"></a>
 <span class="sourceLineNo">082</span>      request.setServerStartCode(-1);<a name="line.82"></a>
 <span class="sourceLineNo">083</span>      request.setServerCurrentTime(System.currentTimeMillis() - maxSkew * 2);<a name="line.83"></a>
-<span class="sourceLineNo">084</span>      sm.regionServerStartup(request.build(), 0, ia2);<a name="line.84"></a>
+<span class="sourceLineNo">084</span>      sm.regionServerStartup(request.build(), 0, "0.0.0", ia2);<a name="line.84"></a>
 <span class="sourceLineNo">085</span>      fail("HMaster should have thrown a ClockOutOfSyncException but didn't.");<a name="line.85"></a>
 <span class="sourceLineNo">086</span>    } catch(ClockOutOfSyncException e) {<a name="line.86"></a>
 <span class="sourceLineNo">087</span>      //we want an exception<a name="line.87"></a>
@@ -105,7 +105,7 @@
 <span class="sourceLineNo">097</span>      request.setPort(1236);<a name="line.97"></a>
 <span class="sourceLineNo">098</span>      request.setServerStartCode(-1);<a name="line.98"></a>
 <span class="sourceLineNo">099</span>      request.setServerCurrentTime(System.currentTimeMillis() + maxSkew * 2);<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      sm.regionServerStartup(request.build(), 0, ia3);<a name="line.100"></a>
+<span class="sourceLineNo">100</span>      sm.regionServerStartup(request.build(), 0, "0.0.0", ia3);<a name="line.100"></a>
 <span class="sourceLineNo">101</span>      fail("HMaster should have thrown a ClockOutOfSyncException but didn't.");<a name="line.101"></a>
 <span class="sourceLineNo">102</span>    } catch (ClockOutOfSyncException e) {<a name="line.102"></a>
 <span class="sourceLineNo">103</span>      // we want an exception<a name="line.103"></a>
@@ -119,7 +119,7 @@
 <span class="sourceLineNo">111</span>    request.setPort(1237);<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    request.setServerStartCode(-1);<a name="line.112"></a>
 <span class="sourceLineNo">113</span>    request.setServerCurrentTime(System.currentTimeMillis() - warningSkew * 2);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    sm.regionServerStartup(request.build(), 0, ia4);<a name="line.114"></a>
+<span class="sourceLineNo">114</span>    sm.regionServerStartup(request.build(), 0, "0.0.0", ia4);<a name="line.114"></a>
 <span class="sourceLineNo">115</span><a name="line.115"></a>
 <span class="sourceLineNo">116</span>    // make sure values above warning threshold but below max threshold don't kill<a name="line.116"></a>
 <span class="sourceLineNo">117</span>    LOG.debug("regionServerStartup 5");<a name="line.117"></a>
@@ -128,7 +128,7 @@
 <span class="sourceLineNo">120</span>    request.setPort(1238);<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    request.setServerStartCode(-1);<a name="line.121"></a>
 <span class="sourceLineNo">122</span>    request.setServerCurrentTime(System.currentTimeMillis() + warningSkew * 2);<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    sm.regionServerStartup(request.build(), 0, ia5);<a name="line.123"></a>
+<span class="sourceLineNo">123</span>    sm.regionServerStartup(request.build(), 0, "0.0.0", ia5);<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>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestRestartCluster.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestRestartCluster.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestRestartCluster.html
index 53422ee..1209dba 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestRestartCluster.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestRestartCluster.html
@@ -242,7 +242,7 @@
 <span class="sourceLineNo">234</span>    while (t.isAlive()) {<a name="line.234"></a>
 <span class="sourceLineNo">235</span>      List&lt;ServerName&gt; serverNames = master.getServerManager().getOnlineServersList();<a name="line.235"></a>
 <span class="sourceLineNo">236</span>      for (ServerName serverName : serverNames) {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        assertNotEquals(0, master.getServerManager().getServerVersion(serverName));<a name="line.237"></a>
+<span class="sourceLineNo">237</span>        assertNotEquals(0, master.getServerManager().getVersionNumber(serverName));<a name="line.237"></a>
 <span class="sourceLineNo">238</span>      }<a name="line.238"></a>
 <span class="sourceLineNo">239</span>      Thread.sleep(100);<a name="line.239"></a>
 <span class="sourceLineNo">240</span>    }<a name="line.240"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClass.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClass.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClass.html
index 7896c2f..9597ff9 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClass.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidatorTest.MissingClass.html
@@ -28,161 +28,249 @@
 <span class="sourceLineNo">020</span><a name="line.20"></a>
 <span class="sourceLineNo">021</span>import static org.junit.Assert.assertEquals;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import static org.junit.Assert.assertTrue;<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 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.Coprocessor;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.CoprocessorEnvironment;<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.HRegionInfo;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.junit.ClassRule;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.junit.Test;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.junit.experimental.categories.Category;<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>@Category({ SmallTests.class })<a name="line.42"></a>
-<span class="sourceLineNo">043</span>@SuppressWarnings("deprecation")<a name="line.43"></a>
-<span class="sourceLineNo">044</span>public class CoprocessorValidatorTest {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  @ClassRule<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.46"></a>
-<span class="sourceLineNo">047</span>      HBaseClassTestRule.forClass(CoprocessorValidatorTest.class);<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>  private CoprocessorValidator validator;<a name="line.49"></a>
-<span class="sourceLineNo">050</span><a name="line.50"></a>
-<span class="sourceLineNo">051</span>  public CoprocessorValidatorTest() {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    validator = new CoprocessorValidator();<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  }<a name="line.53"></a>
-<span class="sourceLineNo">054</span><a name="line.54"></a>
-<span class="sourceLineNo">055</span>  private static ClassLoader getClassLoader() {<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    return CoprocessorValidatorTest.class.getClassLoader();<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 String getFullClassName(String className) {<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    return CoprocessorValidatorTest.class.getName() + "$" + className;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  }<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  @SuppressWarnings({"rawtypes", "unused"})<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  private static class TestObserver implements Coprocessor {<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    @Override<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    public void start(CoprocessorEnvironment env) throws IOException {<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>    @Override<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    public void stop(CoprocessorEnvironment env) throws IOException {<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><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  @Test<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  public void testFilterObservers() throws Exception {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    String filterObservers = getFullClassName("TestObserver");<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    List&lt;String&gt; classNames = Lists.newArrayList(<a name="line.77"></a>
-<span class="sourceLineNo">078</span>        filterObservers, getClass().getName());<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    List&lt;String&gt; filteredClassNames = validator.filterObservers(getClassLoader(), classNames);<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span>    assertEquals(1, filteredClassNames.size());<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    assertEquals(filterObservers, filteredClassNames.get(0));<a name="line.82"></a>
+<span class="sourceLineNo">023</span>import static org.mockito.Mockito.doReturn;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import static org.mockito.Mockito.mock;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.io.IOException;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.io.InputStream;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.io.OutputStream;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.nio.file.Files;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.nio.file.Path;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.nio.file.Paths;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.util.ArrayList;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.List;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Optional;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.jar.JarOutputStream;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.regex.Pattern;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.zip.ZipEntry;<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HRegionInfo;<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.client.Admin;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.client.CoprocessorDescriptor;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.tool.coprocessor.CoprocessorViolation.Severity;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.junit.ClassRule;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.junit.Test;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.junit.experimental.categories.Category;<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hbase.thirdparty.com.google.common.io.ByteStreams;<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>@Category({ SmallTests.class })<a name="line.58"></a>
+<span class="sourceLineNo">059</span>@SuppressWarnings("deprecation")<a name="line.59"></a>
+<span class="sourceLineNo">060</span>public class CoprocessorValidatorTest {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  @ClassRule<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      HBaseClassTestRule.forClass(CoprocessorValidatorTest.class);<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>  private CoprocessorValidator validator;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  public CoprocessorValidatorTest() {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    validator = new CoprocessorValidator();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    validator.setConf(HBaseConfiguration.create());<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>  private static ClassLoader getClassLoader() {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    return CoprocessorValidatorTest.class.getClassLoader();<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>  private static String getFullClassName(String className) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    return CoprocessorValidatorTest.class.getName() + "$" + className;<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>  private List&lt;CoprocessorViolation&gt; validateClass(String className) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    ClassLoader classLoader = getClass().getClassLoader();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    return validateClass(classLoader, className);<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>  private List&lt;CoprocessorViolation&gt; validate(String className) {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    ClassLoader classLoader = getClass().getClassLoader();<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    return validate(classLoader, className);<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>  private List&lt;CoprocessorViolation&gt; validate(ClassLoader classLoader, String className) {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    List&lt;String&gt; classNames = Lists.newArrayList(getClass().getName() + "$" + className);<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    return validator.validate(classLoader, classNames);<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>  /*<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * In this test case, we are try to load a not-existent class.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  @Test<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  public void testNoSuchClass() throws IOException {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    List&lt;CoprocessorViolation&gt; violations = validate("NoSuchClass");<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    assertEquals(1, violations.size());<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>    CoprocessorViolation violation = violations.get(0);<a name="line.103"></a>
+<span class="sourceLineNo">085</span>  private List&lt;CoprocessorViolation&gt; validateClass(ClassLoader classLoader, String className) {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    List&lt;String&gt; classNames = Lists.newArrayList(getFullClassName(className));<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    List&lt;CoprocessorViolation&gt; violations = new ArrayList&lt;&gt;();<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>    validator.validateClasses(classLoader, classNames, violations);<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>    return violations;<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>   * In this test case, we are try to load a not-existent class.<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 testNoSuchClass() throws IOException {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    List&lt;CoprocessorViolation&gt; violations = validateClass("NoSuchClass");<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    assertEquals(1, violations.size());<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>    CoprocessorViolation violation = violations.get(0);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    assertEquals(getFullClassName("NoSuchClass"), violation.getClassName());<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    assertTrue(violation.getMessage().contains(<a name="line.105"></a>
-<span class="sourceLineNo">106</span>        "java.lang.ClassNotFoundException: " +<a name="line.106"></a>
-<span class="sourceLineNo">107</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$NoSuchClass"));<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>   * In this test case, we are validating MissingClass coprocessor, which<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   * references a missing class. With a special classloader, we prevent that<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * class to be loaded at runtime. It simulates similar cases where a class<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   * is no more on our classpath.<a name="line.114"></a>
-<span class="sourceLineNo">115</span>   * E.g. org.apache.hadoop.hbase.regionserver.wal.WALEdit was moved to<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   * org.apache.hadoop.hbase.wal, so class loading will fail on 2.0.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   */<a name="line.117"></a>
-<span class="sourceLineNo">118</span>  private static class MissingClass {<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>  @SuppressWarnings("unused")<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  private static class MissingClassObserver {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    public void method(MissingClass missingClass) {<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>  private static class MissingClassClassLoader extends ClassLoader {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    public MissingClassClassLoader() {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      super(getClassLoader());<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>    @Override<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    public Class&lt;?&gt; loadClass(String name) throws ClassNotFoundException {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      if (name.equals(getFullClassName("MissingClass"))) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>        throw new ClassNotFoundException(name);<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>      return super.findClass(name);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    }<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>  @Test<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  public void testMissingClass() throws IOException {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    MissingClassClassLoader missingClassClassLoader = new MissingClassClassLoader();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    List&lt;CoprocessorViolation&gt; violations = validate(missingClassClassLoader,<a name="line.145"></a>
-<span class="sourceLineNo">146</span>        "MissingClassObserver");<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    assertEquals(1, violations.size());<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>    CoprocessorViolation violation = violations.get(0);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    assertTrue(violation.getMessage().contains(<a name="line.151"></a>
-<span class="sourceLineNo">152</span>        "java.lang.ClassNotFoundException: " +<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$MissingClass"));<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>   * ObsoleteMethod coprocessor implements preCreateTable method which has<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   * HRegionInfo parameters. In our current implementation, we pass only<a name="line.158"></a>
-<span class="sourceLineNo">159</span>   * RegionInfo parameters, so this method won't be called by HBase at all.<a name="line.159"></a>
-<span class="sourceLineNo">160</span>   */<a name="line.160"></a>
-<span class="sourceLineNo">161</span>  @SuppressWarnings("unused")<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  private static class ObsoleteMethodObserver /* implements MasterObserver */ {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    public void preCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        HTableDescriptor desc, HRegionInfo[] regions) throws IOException {<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>  @Test<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  public void testObsoleteMethod() throws IOException {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    List&lt;CoprocessorViolation&gt; violations = validate("ObsoleteMethodObserver");<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    assertEquals(1, violations.size());<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>    CoprocessorViolation violation = violations.get(0);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    assertEquals(Severity.WARNING, violation.getSeverity());<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    assertTrue(violation.getMessage().contains("was removed from new coprocessor API"));<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">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>    String stackTrace = Throwables.getStackTraceAsString(violation.getThrowable());<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    assertTrue(stackTrace.contains("java.lang.ClassNotFoundException: " +<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$NoSuchClass"));<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>  /*<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   * In this test case, we are validating MissingClass coprocessor, which<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   * references a missing class. With a special classloader, we prevent that<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   * class to be loaded at runtime. It simulates similar cases where a class<a name="line.114"></a>
+<span class="sourceLineNo">115</span>   * is no more on our classpath.<a name="line.115"></a>
+<span class="sourceLineNo">116</span>   * E.g. org.apache.hadoop.hbase.regionserver.wal.WALEdit was moved to<a name="line.116"></a>
+<span class="sourceLineNo">117</span>   * org.apache.hadoop.hbase.wal, so class loading will fail on 2.0.<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   */<a name="line.118"></a>
+<span class="sourceLineNo">119</span>  private static class MissingClass {<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>  @SuppressWarnings("unused")<a name="line.122"></a>
+<span class="sourceLineNo">123</span>  private static class MissingClassObserver {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public void method(MissingClass missingClass) {<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>  private static class MissingClassClassLoader extends ClassLoader {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    public MissingClassClassLoader() {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      super(getClassLoader());<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>    @Override<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    public Class&lt;?&gt; loadClass(String name) throws ClassNotFoundException {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      if (name.equals(getFullClassName("MissingClass"))) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        throw new ClassNotFoundException(name);<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>      return super.findClass(name);<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>  @Test<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  public void testMissingClass() throws IOException {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    MissingClassClassLoader missingClassClassLoader = new MissingClassClassLoader();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    List&lt;CoprocessorViolation&gt; violations = validateClass(missingClassClassLoader,<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        "MissingClassObserver");<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    assertEquals(1, violations.size());<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    CoprocessorViolation violation = violations.get(0);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    assertEquals(getFullClassName("MissingClassObserver"), violation.getClassName());<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>    String stackTrace = Throwables.getStackTraceAsString(violation.getThrowable());<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    assertTrue(stackTrace.contains("java.lang.ClassNotFoundException: " +<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$MissingClass"));<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>   * ObsoleteMethod coprocessor implements preCreateTable method which has<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   * HRegionInfo parameters. In our current implementation, we pass only<a name="line.161"></a>
+<span class="sourceLineNo">162</span>   * RegionInfo parameters, so this method won't be called by HBase at all.<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  @SuppressWarnings("unused")<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  private static class ObsoleteMethodObserver /* implements MasterObserver */ {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    public void preCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        HTableDescriptor desc, HRegionInfo[] regions) throws IOException {<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>  @Test<a name="line.171"></a>
+<span class="sourceLineNo">172</span>  public void testObsoleteMethod() throws IOException {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    List&lt;CoprocessorViolation&gt; violations = validateClass("ObsoleteMethodObserver");<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    assertEquals(1, violations.size());<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>    CoprocessorViolation violation = violations.get(0);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    assertEquals(Severity.WARNING, violation.getSeverity());<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    assertEquals(getFullClassName("ObsoleteMethodObserver"), violation.getClassName());<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    assertTrue(violation.getMessage().contains("was removed from new coprocessor API"));<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>  private List&lt;CoprocessorViolation&gt; validateTable(String jarFile, String className)<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      throws IOException {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    Pattern pattern = Pattern.compile(".*");<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>    Admin admin = mock(Admin.class);<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>    TableDescriptor tableDescriptor = mock(TableDescriptor.class);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    List&lt;TableDescriptor&gt; tableDescriptors = Lists.newArrayList(tableDescriptor);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    doReturn(tableDescriptors).when(admin).listTableDescriptors(pattern);<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>    CoprocessorDescriptor coprocessorDescriptor = mock(CoprocessorDescriptor.class);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    List&lt;CoprocessorDescriptor&gt; coprocessorDescriptors =<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        Lists.newArrayList(coprocessorDescriptor);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    doReturn(coprocessorDescriptors).when(tableDescriptor).getCoprocessorDescriptors();<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>    doReturn(getFullClassName(className)).when(coprocessorDescriptor).getClassName();<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    doReturn(Optional.ofNullable(jarFile)).when(coprocessorDescriptor).getJarPath();<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>    List&lt;CoprocessorViolation&gt; violations = new ArrayList&lt;&gt;();<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>    validator.validateTables(getClassLoader(), admin, pattern, violations);<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>    return violations;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  }<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>  @Test<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  public void testTableNoSuchClass() throws IOException {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    List&lt;CoprocessorViolation&gt; violations = validateTable(null, "NoSuchClass");<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    assertEquals(1, violations.size());<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>    CoprocessorViolation violation = violations.get(0);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    assertEquals(getFullClassName("NoSuchClass"), violation.getClassName());<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>    String stackTrace = Throwables.getStackTraceAsString(violation.getThrowable());<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    assertTrue(stackTrace.contains("java.lang.ClassNotFoundException: " +<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        "org.apache.hadoop.hbase.tool.coprocessor.CoprocessorValidatorTest$NoSuchClass"));<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>  @Test<a name="line.221"></a>
+<span class="sourceLineNo">222</span>  public void testTableMissingJar() throws IOException {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    List&lt;CoprocessorViolation&gt; violations = validateTable("no such file", "NoSuchClass");<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    assertEquals(1, violations.size());<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>    CoprocessorViolation violation = violations.get(0);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    assertEquals(getFullClassName("NoSuchClass"), violation.getClassName());<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    assertEquals(Severity.ERROR, violation.getSeverity());<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    assertTrue(violation.getMessage().contains("could not validate jar file 'no such file'"));<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>  @Test<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  public void testTableValidJar() throws IOException {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    Path outputDirectory = Paths.get("target", "test-classes");<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    String className = getFullClassName("ObsoleteMethodObserver");<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    Path classFile = Paths.get(className.replace('.', '/') + ".class");<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    Path fullClassFile = outputDirectory.resolve(classFile);<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>    Path tempJarFile = Files.createTempFile("coprocessor-validator-test-", ".jar");<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>    try {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      try (OutputStream fileStream = Files.newOutputStream(tempJarFile);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>          JarOutputStream jarStream = new JarOutputStream(fileStream);<a name="line.243"></a>
+<span class="sourceLineNo">244</span>          InputStream classStream = Files.newInputStream(fullClassFile)) {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        ZipEntry entry = new ZipEntry(classFile.toString());<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        jarStream.putNextEntry(entry);<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>        ByteStreams.copy(classStream, jarStream);<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>      String tempJarFileUri = tempJarFile.toUri().toString();<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>      List&lt;CoprocessorViolation&gt; violations =<a name="line.253"></a>
+<span class="sourceLineNo">254</span>          validateTable(tempJarFileUri, "ObsoleteMethodObserver");<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      assertEquals(1, violations.size());<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>      CoprocessorViolation violation = violations.get(0);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      assertEquals(getFullClassName("ObsoleteMethodObserver"), violation.getClassName());<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      assertEquals(Severity.WARNING, violation.getSeverity());<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      assertTrue(violation.getMessage().contains("was removed from new coprocessor API"));<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    } finally {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      Files.delete(tempJarFile);<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>}<a name="line.265"></a>
 
 
 


[22/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HMaster.html b/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
index df966b8..5fc481b 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
@@ -128,7 +128,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.LimitedPrivate(value="Tools")
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.244">HMaster</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.243">HMaster</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></pre>
 <div class="block">HMaster is the "master server" for HBase. An HBase cluster has one active
@@ -1504,7 +1504,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.245">LOG</a></pre>
+<pre>private static&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.244">LOG</a></pre>
 </li>
 </ul>
 <a name="MASTER">
@@ -1513,7 +1513,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>MASTER</h4>
-<pre>public 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/master/HMaster.html#line.301">MASTER</a></pre>
+<pre>public 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/master/HMaster.html#line.300">MASTER</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.master.HMaster.MASTER">Constant Field Values</a></dd>
@@ -1526,7 +1526,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>activeMasterManager</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ActiveMasterManager.html" title="class in org.apache.hadoop.hbase.master">ActiveMasterManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.304">activeMasterManager</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ActiveMasterManager.html" title="class in org.apache.hadoop.hbase.master">ActiveMasterManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.303">activeMasterManager</a></pre>
 </li>
 </ul>
 <a name="regionServerTracker">
@@ -1535,7 +1535,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>regionServerTracker</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/RegionServerTracker.html" title="class in org.apache.hadoop.hbase.master">RegionServerTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.306">regionServerTracker</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/RegionServerTracker.html" title="class in org.apache.hadoop.hbase.master">RegionServerTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.305">regionServerTracker</a></pre>
 </li>
 </ul>
 <a name="drainingServerTracker">
@@ -1544,7 +1544,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>drainingServerTracker</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/DrainingServerTracker.html" title="class in org.apache.hadoop.hbase.master">DrainingServerTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.308">drainingServerTracker</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/DrainingServerTracker.html" title="class in org.apache.hadoop.hbase.master">DrainingServerTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.307">drainingServerTracker</a></pre>
 </li>
 </ul>
 <a name="loadBalancerTracker">
@@ -1553,7 +1553,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>loadBalancerTracker</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/zookeeper/LoadBalancerTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">LoadBalancerTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.310">loadBalancerTracker</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/zookeeper/LoadBalancerTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">LoadBalancerTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.309">loadBalancerTracker</a></pre>
 </li>
 </ul>
 <a name="metaLocationSyncer">
@@ -1562,7 +1562,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>metaLocationSyncer</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/master/zksyncer/MetaLocationSyncer.html" title="class in org.apache.hadoop.hbase.master.zksyncer">MetaLocationSyncer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.312">metaLocationSyncer</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/master/zksyncer/MetaLocationSyncer.html" title="class in org.apache.hadoop.hbase.master.zksyncer">MetaLocationSyncer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.311">metaLocationSyncer</a></pre>
 </li>
 </ul>
 <a name="masterAddressSyncer">
@@ -1571,7 +1571,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>masterAddressSyncer</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/master/zksyncer/MasterAddressSyncer.html" title="class in org.apache.hadoop.hbase.master.zksyncer">MasterAddressSyncer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.314">masterAddressSyncer</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/master/zksyncer/MasterAddressSyncer.html" title="class in org.apache.hadoop.hbase.master.zksyncer">MasterAddressSyncer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.313">masterAddressSyncer</a></pre>
 </li>
 </ul>
 <a name="splitOrMergeTracker">
@@ -1580,7 +1580,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>splitOrMergeTracker</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/SplitOrMergeTracker.html" title="class in org.apache.hadoop.hbase.master">SplitOrMergeTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.317">splitOrMergeTracker</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/SplitOrMergeTracker.html" title="class in org.apache.hadoop.hbase.master">SplitOrMergeTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.316">splitOrMergeTracker</a></pre>
 </li>
 </ul>
 <a name="regionNormalizerTracker">
@@ -1589,7 +1589,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>regionNormalizerTracker</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/RegionNormalizerTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">RegionNormalizerTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.320">regionNormalizerTracker</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/RegionNormalizerTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">RegionNormalizerTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.319">regionNormalizerTracker</a></pre>
 </li>
 </ul>
 <a name="maintenanceModeTracker">
@@ -1598,7 +1598,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>maintenanceModeTracker</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MasterMaintenanceModeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">MasterMaintenanceModeTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.323">maintenanceModeTracker</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MasterMaintenanceModeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">MasterMaintenanceModeTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.322">maintenanceModeTracker</a></pre>
 </li>
 </ul>
 <a name="clusterSchemaService">
@@ -1607,7 +1607,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>clusterSchemaService</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ClusterSchemaService.html" title="interface in org.apache.hadoop.hbase.master">ClusterSchemaService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.325">clusterSchemaService</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ClusterSchemaService.html" title="interface in org.apache.hadoop.hbase.master">ClusterSchemaService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.324">clusterSchemaService</a></pre>
 </li>
 </ul>
 <a name="HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS">
@@ -1616,7 +1616,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS</h4>
-<pre>public 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/master/HMaster.html#line.327">HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS</a></pre>
+<pre>public 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/master/HMaster.html#line.326">HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.master.HMaster.HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS">Constant Field Values</a></dd>
@@ -1629,7 +1629,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS</h4>
-<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.329">DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.328">DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.master.HMaster.DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS">Constant Field Values</a></dd>
@@ -1642,7 +1642,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>metricsMaster</h4>
-<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMaster.html" title="class in org.apache.hadoop.hbase.master">MetricsMaster</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.332">metricsMaster</a></pre>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMaster.html" title="class in org.apache.hadoop.hbase.master">MetricsMaster</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.331">metricsMaster</a></pre>
 </li>
 </ul>
 <a name="fileSystemManager">
@@ -1651,7 +1651,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>fileSystemManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterFileSystem.html" title="class in org.apache.hadoop.hbase.master">MasterFileSystem</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.334">fileSystemManager</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterFileSystem.html" title="class in org.apache.hadoop.hbase.master">MasterFileSystem</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.333">fileSystemManager</a></pre>
 </li>
 </ul>
 <a name="walManager">
@@ -1660,7 +1660,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>walManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterWalManager.html" title="class in org.apache.hadoop.hbase.master">MasterWalManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.335">walManager</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterWalManager.html" title="class in org.apache.hadoop.hbase.master">MasterWalManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.334">walManager</a></pre>
 </li>
 </ul>
 <a name="serverManager">
@@ -1669,7 +1669,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>serverManager</h4>
-<pre>private volatile&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.338">serverManager</a></pre>
+<pre>private volatile&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.337">serverManager</a></pre>
 </li>
 </ul>
 <a name="assignmentManager">
@@ -1678,7 +1678,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>assignmentManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.341">assignmentManager</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.340">assignmentManager</a></pre>
 </li>
 </ul>
 <a name="replicationPeerManager">
@@ -1687,7 +1687,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>replicationPeerManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.html" title="class in org.apache.hadoop.hbase.master.replication">ReplicationPeerManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.344">replicationPeerManager</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.html" title="class in org.apache.hadoop.hbase.master.replication">ReplicationPeerManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.343">replicationPeerManager</a></pre>
 </li>
 </ul>
 <a name="syncReplicationReplayWALManager">
@@ -1696,7 +1696,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>syncReplicationReplayWALManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/replication/SyncReplicationReplayWALManager.html" title="class in org.apache.hadoop.hbase.master.replication">SyncReplicationReplayWALManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.346">syncReplicationReplayWALManager</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/replication/SyncReplicationReplayWALManager.html" title="class in org.apache.hadoop.hbase.master.replication">SyncReplicationReplayWALManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.345">syncReplicationReplayWALManager</a></pre>
 </li>
 </ul>
 <a name="rsFatals">
@@ -1705,7 +1705,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>rsFatals</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/monitoring/MemoryBoundedLogMessageBuffer.html" title="class in org.apache.hadoop.hbase.monitoring">MemoryBoundedLogMessageBuffer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.351">rsFatals</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/monitoring/MemoryBoundedLogMessageBuffer.html" title="class in org.apache.hadoop.hbase.monitoring">MemoryBoundedLogMessageBuffer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.350">rsFatals</a></pre>
 </li>
 </ul>
 <a name="activeMaster">
@@ -1714,7 +1714,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>activeMaster</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.354">activeMaster</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.353">activeMaster</a></pre>
 </li>
 </ul>
 <a name="initialized">
@@ -1723,7 +1723,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>initialized</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&lt;?&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.357">initialized</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&lt;?&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.356">initialized</a></pre>
 </li>
 </ul>
 <a name="serviceStarted">
@@ -1732,7 +1732,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>serviceStarted</h4>
-<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.361">serviceStarted</a></pre>
+<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.360">serviceStarted</a></pre>
 </li>
 </ul>
 <a name="maxBlancingTime">
@@ -1741,7 +1741,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>maxBlancingTime</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.364">maxBlancingTime</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.363">maxBlancingTime</a></pre>
 </li>
 </ul>
 <a name="maxRitPercent">
@@ -1750,7 +1750,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>maxRitPercent</h4>
-<pre>private final&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.366">maxRitPercent</a></pre>
+<pre>private final&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.365">maxRitPercent</a></pre>
 </li>
 </ul>
 <a name="lockManager">
@@ -1759,7 +1759,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>lockManager</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/locking/LockManager.html" title="class in org.apache.hadoop.hbase.master.locking">LockManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.368">lockManager</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/locking/LockManager.html" title="class in org.apache.hadoop.hbase.master.locking">LockManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.367">lockManager</a></pre>
 </li>
 </ul>
 <a name="balancer">
@@ -1768,7 +1768,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>balancer</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.370">balancer</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.369">balancer</a></pre>
 </li>
 </ul>
 <a name="normalizer">
@@ -1777,7 +1777,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>normalizer</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizer.html" title="interface in org.apache.hadoop.hbase.master.normalizer">RegionNormalizer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.371">normalizer</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizer.html" title="interface in org.apache.hadoop.hbase.master.normalizer">RegionNormalizer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.370">normalizer</a></pre>
 </li>
 </ul>
 <a name="balancerChore">
@@ -1786,7 +1786,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>balancerChore</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/balancer/BalancerChore.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.372">balancerChore</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/balancer/BalancerChore.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.371">balancerChore</a></pre>
 </li>
 </ul>
 <a name="normalizerChore">
@@ -1795,7 +1795,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>normalizerChore</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizerChore.html" title="class in org.apache.hadoop.hbase.master.normalizer">RegionNormalizerChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.373">normalizerChore</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizerChore.html" title="class in org.apache.hadoop.hbase.master.normalizer">RegionNormalizerChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.372">normalizerChore</a></pre>
 </li>
 </ul>
 <a name="clusterStatusChore">
@@ -1804,7 +1804,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>clusterStatusChore</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/balancer/ClusterStatusChore.html" title="class in org.apache.hadoop.hbase.master.balancer">ClusterStatusChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.374">clusterStatusChore</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/balancer/ClusterStatusChore.html" title="class in org.apache.hadoop.hbase.master.balancer">ClusterStatusChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.373">clusterStatusChore</a></pre>
 </li>
 </ul>
 <a name="clusterStatusPublisherChore">
@@ -1813,7 +1813,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>clusterStatusPublisherChore</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ClusterStatusPublisher.html" title="class in org.apache.hadoop.hbase.master">ClusterStatusPublisher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.375">clusterStatusPublisherChore</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ClusterStatusPublisher.html" title="class in org.apache.hadoop.hbase.master">ClusterStatusPublisher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.374">clusterStatusPublisherChore</a></pre>
 </li>
 </ul>
 <a name="catalogJanitorChore">
@@ -1822,7 +1822,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>catalogJanitorChore</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/master/CatalogJanitor.html" title="class in org.apache.hadoop.hbase.master">CatalogJanitor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.377">catalogJanitorChore</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/master/CatalogJanitor.html" title="class in org.apache.hadoop.hbase.master">CatalogJanitor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.376">catalogJanitorChore</a></pre>
 </li>
 </ul>
 <a name="logCleaner">
@@ -1831,7 +1831,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>logCleaner</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.378">logCleaner</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.377">logCleaner</a></pre>
 </li>
 </ul>
 <a name="hfileCleaner">
@@ -1840,7 +1840,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>hfileCleaner</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.379">hfileCleaner</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.378">hfileCleaner</a></pre>
 </li>
 </ul>
 <a name="replicationBarrierCleaner">
@@ -1849,7 +1849,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>replicationBarrierCleaner</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/ReplicationBarrierCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">ReplicationBarrierCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.380">replicationBarrierCleaner</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/ReplicationBarrierCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">ReplicationBarrierCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.379">replicationBarrierCleaner</a></pre>
 </li>
 </ul>
 <a name="expiredMobFileCleanerChore">
@@ -1858,7 +1858,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>expiredMobFileCleanerChore</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ExpiredMobFileCleanerChore.html" title="class in org.apache.hadoop.hbase.master">ExpiredMobFileCleanerChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.381">expiredMobFileCleanerChore</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ExpiredMobFileCleanerChore.html" title="class in org.apache.hadoop.hbase.master">ExpiredMobFileCleanerChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.380">expiredMobFileCleanerChore</a></pre>
 </li>
 </ul>
 <a name="mobCompactChore">
@@ -1867,7 +1867,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>mobCompactChore</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MobCompactionChore.html" title="class in org.apache.hadoop.hbase.master">MobCompactionChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.382">mobCompactChore</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MobCompactionChore.html" title="class in org.apache.hadoop.hbase.master">MobCompactionChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.381">mobCompactChore</a></pre>
 </li>
 </ul>
 <a name="mobCompactThread">
@@ -1876,7 +1876,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>mobCompactThread</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterMobCompactionThread.html" title="class in org.apache.hadoop.hbase.master">MasterMobCompactionThread</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.383">mobCompactThread</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterMobCompactionThread.html" title="class in org.apache.hadoop.hbase.master">MasterMobCompactionThread</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.382">mobCompactThread</a></pre>
 </li>
 </ul>
 <a name="mobCompactionLock">
@@ -1885,7 +1885,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>mobCompactionLock</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/IdLock.html" title="class in org.apache.hadoop.hbase.util">IdLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.385">mobCompactionLock</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/IdLock.html" title="class in org.apache.hadoop.hbase.util">IdLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.384">mobCompactionLock</a></pre>
 </li>
 </ul>
 <a name="mobCompactionStates">
@@ -1894,7 +1894,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>mobCompactionStates</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<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>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.388">mobCompactionStates</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<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>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.387">mobCompactionStates</a></pre>
 </li>
 </ul>
 <a name="cpHost">
@@ -1903,7 +1903,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>cpHost</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.390">cpHost</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.389">cpHost</a></pre>
 </li>
 </ul>
 <a name="preLoadTableDescriptors">
@@ -1912,7 +1912,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>preLoadTableDescriptors</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.392">preLoadTableDescriptors</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.391">preLoadTableDescriptors</a></pre>
 </li>
 </ul>
 <a name="masterActiveTime">
@@ -1921,7 +1921,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>masterActiveTime</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.395">masterActiveTime</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.394">masterActiveTime</a></pre>
 </li>
 </ul>
 <a name="masterFinishedInitializationTime">
@@ -1930,7 +1930,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>masterFinishedInitializationTime</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.398">masterFinishedInitializationTime</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.397">masterFinishedInitializationTime</a></pre>
 </li>
 </ul>
 <a name="masterCheckCompression">
@@ -1939,7 +1939,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>masterCheckCompression</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.401">masterCheckCompression</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.400">masterCheckCompression</a></pre>
 </li>
 </ul>
 <a name="masterCheckEncryption">
@@ -1948,7 +1948,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>masterCheckEncryption</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.404">masterCheckEncryption</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.403">masterCheckEncryption</a></pre>
 </li>
 </ul>
 <a name="coprocessorServiceHandlers">
@@ -1957,7 +1957,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>coprocessorServiceHandlers</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<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>,com.google.protobuf.Service&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.406">coprocessorServiceHandlers</a></pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<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>,com.google.protobuf.Service&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.405">coprocessorServiceHandlers</a></pre>
 </li>
 </ul>
 <a name="snapshotManager">
@@ -1966,7 +1966,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>snapshotManager</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html" title="class in org.apache.hadoop.hbase.master.snapshot">SnapshotManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.409">snapshotManager</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html" title="class in org.apache.hadoop.hbase.master.snapshot">SnapshotManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.408">snapshotManager</a></pre>
 </li>
 </ul>
 <a name="mpmHost">
@@ -1975,7 +1975,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>mpmHost</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManagerHost.html" title="class in org.apache.hadoop.hbase.procedure">MasterProcedureManagerHost</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.411">mpmHost</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManagerHost.html" title="class in org.apache.hadoop.hbase.procedure">MasterProcedureManagerHost</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.410">mpmHost</a></pre>
 </li>
 </ul>
 <a name="quotaManager">
@@ -1984,7 +1984,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>quotaManager</h4>
-<pre>private volatile&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/MasterQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">MasterQuotaManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.414">quotaManager</a></pre>
+<pre>private volatile&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/MasterQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">MasterQuotaManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.413">quotaManager</a></pre>
 </li>
 </ul>
 <a name="spaceQuotaSnapshotNotifier">
@@ -1993,7 +1993,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>spaceQuotaSnapshotNotifier</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshotNotifier.html" title="interface in org.apache.hadoop.hbase.quotas">SpaceQuotaSnapshotNotifier</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.415">spaceQuotaSnapshotNotifier</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshotNotifier.html" title="interface in org.apache.hadoop.hbase.quotas">SpaceQuotaSnapshotNotifier</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.414">spaceQuotaSnapshotNotifier</a></pre>
 </li>
 </ul>
 <a name="quotaObserverChore">
@@ -2002,7 +2002,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>quotaObserverChore</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaObserverChore.html" title="class in org.apache.hadoop.hbase.quotas">QuotaObserverChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.416">quotaObserverChore</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaObserverChore.html" title="class in org.apache.hadoop.hbase.quotas">QuotaObserverChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.415">quotaObserverChore</a></pre>
 </li>
 </ul>
 <a name="snapshotQuotaChore">
@@ -2011,7 +2011,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>snapshotQuotaChore</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html" title="class in org.apache.hadoop.hbase.quotas">SnapshotQuotaObserverChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.417">snapshotQuotaChore</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html" title="class in org.apache.hadoop.hbase.quotas">SnapshotQuotaObserverChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.416">snapshotQuotaChore</a></pre>
 </li>
 </ul>
 <a name="procedureExecutor">
@@ -2020,7 +2020,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>procedureExecutor</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.419">procedureExecutor</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.418">procedureExecutor</a></pre>
 </li>
 </ul>
 <a name="procedureStore">
@@ -2029,7 +2029,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>procedureStore</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.420">procedureStore</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.419">procedureStore</a></pre>
 </li>
 </ul>
 <a name="tableStateManager">
@@ -2038,7 +2038,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>tableStateManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/TableStateManager.html" title="class in org.apache.hadoop.hbase.master">TableStateManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.423">tableStateManager</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/TableStateManager.html" title="class in org.apache.hadoop.hbase.master">TableStateManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.422">tableStateManager</a></pre>
 </li>
 </ul>
 <a name="splitPlanCount">
@@ -2047,7 +2047,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>splitPlanCount</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.425">splitPlanCount</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.424">splitPlanCount</a></pre>
 </li>
 </ul>
 <a name="mergePlanCount">
@@ -2056,7 +2056,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>mergePlanCount</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.426">mergePlanCount</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.425">mergePlanCount</a></pre>
 </li>
 </ul>
 <a name="favoredNodesManager">
@@ -2065,7 +2065,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>favoredNodesManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesManager.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodesManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.429">favoredNodesManager</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesManager.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodesManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.428">favoredNodesManager</a></pre>
 </li>
 </ul>
 <a name="masterJettyServer">
@@ -2074,7 +2074,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockListLast">
 <li class="blockList">
 <h4>masterJettyServer</h4>
-<pre>private&nbsp;org.eclipse.jetty.server.Server <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.432">masterJettyServer</a></pre>
+<pre>private&nbsp;org.eclipse.jetty.server.Server <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.431">masterJettyServer</a></pre>
 <div class="block">jetty server for master to redirect requests to regionserver infoServer</div>
 </li>
 </ul>
@@ -2092,7 +2092,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HMaster</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.488">HMaster</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.487">HMaster</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
         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>,
                org.apache.zookeeper.KeeperException</pre>
 <div class="block">Initializes the HMaster. The steps are as follows:
@@ -2126,7 +2126,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getUseThisHostnameInstead</h4>
-<pre>protected&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/master/HMaster.html#line.559">getUseThisHostnameInstead</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>protected&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/master/HMaster.html#line.558">getUseThisHostnameInstead</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getUseThisHostnameInstead-org.apache.hadoop.conf.Configuration-">getUseThisHostnameInstead</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></dd>
@@ -2139,7 +2139,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.566">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.565">run</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#run--">HRegionServer</a></code></span></div>
 <div class="block">The HRegionServer sticks in this loop until closed.</div>
 <dl>
@@ -2156,7 +2156,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>putUpJettyServer</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.604">putUpJettyServer</a>()
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.603">putUpJettyServer</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>
@@ -2170,7 +2170,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaTableObserver</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a>,<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.654">getMetaTableObserver</a>()</pre>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a>,<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.653">getMetaTableObserver</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMetaTableObserver--">getMetaTableObserver</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></dd>
@@ -2183,7 +2183,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>login</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.661">login</a>(<a href="../../../../../org/apache/hadoop/hbase/security/UserProvider.html" title="class in org.apache.hadoop.hbase.security">UserProvider</a>&nbsp;user,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.660">login</a>(<a href="../../../../../org/apache/hadoop/hbase/security/UserProvider.html" title="class in org.apache.hadoop.hbase.security">UserProvider</a>&nbsp;user,
                      <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;host)
               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">For compatibility, if failed with regionserver credentials, try the master one</div>
@@ -2201,7 +2201,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForMasterActive</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.676">waitForMasterActive</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.675">waitForMasterActive</a>()</pre>
 <div class="block">If configured to put regions on active master,
  wait till a backup master becomes active.
  Otherwise, loop till the server is stopped or aborted.</div>
@@ -2217,7 +2217,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterRpcServices</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.html" title="class in org.apache.hadoop.hbase.master">MasterRpcServices</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.684">getMasterRpcServices</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.html" title="class in org.apache.hadoop.hbase.master">MasterRpcServices</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.683">getMasterRpcServices</a>()</pre>
 </li>
 </ul>
 <a name="balanceSwitch-boolean-">
@@ -2226,7 +2226,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>balanceSwitch</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.688">balanceSwitch</a>(boolean&nbsp;b)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.687">balanceSwitch</a>(boolean&nbsp;b)
                       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>
@@ -2240,7 +2240,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcessName</h4>
-<pre>protected&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/master/HMaster.html#line.693">getProcessName</a>()</pre>
+<pre>protected&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/master/HMaster.html#line.692">getProcessName</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getProcessName--">getProcessName</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></dd>
@@ -2253,7 +2253,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>canCreateBaseZNode</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.698">canCreateBaseZNode</a>()</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.697">canCreateBaseZNode</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#canCreateBaseZNode--">canCreateBaseZNode</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></dd>
@@ -2266,7 +2266,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>canUpdateTableDescriptor</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.703">canUpdateTableDescriptor</a>()</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.702">canUpdateTableDescriptor</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#canUpdateTableDescriptor--">canUpdateTableDescriptor</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></dd>
@@ -2279,7 +2279,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>createRpcServices</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.708">createRpcServices</a>()
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.707">createRpcServices</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>
@@ -2295,7 +2295,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>configureInfoServer</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.713">configureInfoServer</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.712">configureInfoServer</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#configureInfoServer--">configureInfoServer</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></dd>
@@ -2308,7 +2308,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getDumpServlet</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends javax.servlet.http.HttpServlet&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.722">getDumpServlet</a>()</pre>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends javax.servlet.http.HttpServlet&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.721">getDumpServlet</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getDumpServlet--">getDumpServlet</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></dd>
@@ -2321,7 +2321,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterMetrics</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMaster.html" title="class in org.apache.hadoop.hbase.master">MetricsMaster</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.727">getMasterMetrics</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMaster.html" title="class in org.apache.hadoop.hbase.master">MetricsMaster</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.726">getMasterMetrics</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterMetrics--">getMasterMetrics</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2336,7 +2336,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>initializeZKBasedSystemTrackers</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.741">initializeZKBasedSystemTrackers</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.740">initializeZKBasedSystemTrackers</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>,
                                                org.apache.zookeeper.KeeperException,
@@ -2363,7 +2363,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>finishActiveMasterInitialization</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.838">finishActiveMasterInitialization</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.837">finishActiveMasterInitialization</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
                                        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>,
                                               org.apache.zookeeper.KeeperException,
@@ -2418,7 +2418,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>updateConfigurationForSpaceQuotaObserver</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1077">updateConfigurationForSpaceQuotaObserver</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1076">updateConfigurationForSpaceQuotaObserver</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block">Adds the <code>MasterSpaceQuotaObserver</code> to the list of configured Master observers to
  automatically remove space quotas for a table when that table is deleted.</div>
 </li>
@@ -2429,7 +2429,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>initMobCleaner</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1094">initMobCleaner</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1093">initMobCleaner</a>()</pre>
 </li>
 </ul>
 <a name="createMetaBootstrap--">
@@ -2438,7 +2438,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>createMetaBootstrap</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterMetaBootstrap.html" title="class in org.apache.hadoop.hbase.master">MasterMetaBootstrap</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1119">createMetaBootstrap</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterMetaBootstrap.html" title="class in org.apache.hadoop.hbase.master">MasterMetaBootstrap</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1118">createMetaBootstrap</a>()</pre>
 <div class="block"><p>
  Create a <a href="../../../../../org/apache/hadoop/hbase/master/MasterMetaBootstrap.html" title="class in org.apache.hadoop.hbase.master"><code>MasterMetaBootstrap</code></a> instance.
  </p>
@@ -2453,7 +2453,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>createServerManager</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1134">createServerManager</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master)
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1133">createServerManager</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master)
                                      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"><p>
  Create a <a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master"><code>ServerManager</code></a> instance.
@@ -2473,7 +2473,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForRegionServers</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1141">waitForRegionServers</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1140">waitForRegionServers</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
                            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>
@@ -2489,7 +2489,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>initClusterSchemaService</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1148">initClusterSchemaService</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1147">initClusterSchemaService</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>
@@ -2505,7 +2505,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>initQuotaManager</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1160">initQuotaManager</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1159">initQuotaManager</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>
@@ -2519,7 +2519,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>createQuotaSnapshotNotifier</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshotNotifier.html" title="interface in org.apache.hadoop.hbase.quotas">SpaceQuotaSnapshotNotifier</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1166">createQuotaSnapshotNotifier</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshotNotifier.html" title="interface in org.apache.hadoop.hbase.quotas">SpaceQuotaSnapshotNotifier</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1165">createQuotaSnapshotNotifier</a>()</pre>
 </li>
 </ul>
 <a name="isCatalogJanitorEnabled--">
@@ -2528,7 +2528,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>isCatalogJanitorEnabled</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1172">isCatalogJanitorEnabled</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1171">isCatalogJanitorEnabled</a>()</pre>
 </li>
 </ul>
 <a name="isCleanerChoreEnabled--">
@@ -2537,7 +2537,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>isCleanerChoreEnabled</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1177">isCleanerChoreEnabled</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1176">isCleanerChoreEnabled</a>()</pre>
 </li>
 </ul>
 <a name="getTableDescriptors--">
@@ -2546,7 +2546,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableDescriptors</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1192">getTableDescriptors</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1191">getTableDescriptors</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getTableDescriptors--">getTableDescriptors</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2563,7 +2563,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1197">getServerManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1196">getServerManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getServerManager--">getServerManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2578,7 +2578,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterFileSystem</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterFileSystem.html" title="class in org.apache.hadoop.hbase.master">MasterFileSystem</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1202">getMasterFileSystem</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterFileSystem.html" title="class in org.apache.hadoop.hbase.master">MasterFileSystem</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1201">getMasterFileSystem</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterFileSystem--">getMasterFileSystem</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2593,7 +2593,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterWalManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterWalManager.html" title="class in org.apache.hadoop.hbase.master">MasterWalManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1207">getMasterWalManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterWalManager.html" title="class in org.apache.hadoop.hbase.master">MasterWalManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1206">getMasterWalManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterWalManager--">getMasterWalManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2608,7 +2608,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableStateManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/TableStateManager.html" title="class in org.apache.hadoop.hbase.master">TableStateManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1212">getTableStateManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/TableStateManager.html" title="class in org.apache.hadoop.hbase.master">TableStateManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1211">getTableStateManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getTableStateManager--">getTableStateManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2623,7 +2623,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>startServiceThreads</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1223">startServiceThreads</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1222">startServiceThreads</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>
@@ -2637,7 +2637,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>stopServiceThreads</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1273">stopServiceThreads</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1272">stopServiceThreads</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stopServiceThreads--">HRegionServer</a></code></span></div>
 <div class="block">Wait on all threads to finish. Presumption is that all closes and stops
  have already been called.</div>
@@ -2653,7 +2653,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>createProcedureExecutor</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1321">createProcedureExecutor</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1320">createProcedureExecutor</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>
@@ -2667,7 +2667,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>startProcedureExecutor</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1344">startProcedureExecutor</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1343">startProcedureExecutor</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>
@@ -2681,7 +2681,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>stopProcedureExecutor</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1348">stopProcedureExecutor</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1347">stopProcedureExecutor</a>()</pre>
 </li>
 </ul>
 <a name="stopChores--">
@@ -2690,7 +2690,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>stopChores</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1363">stopChores</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1362">stopChores</a>()</pre>
 </li>
 </ul>
 <a name="getRemoteInetAddress-int-long-">
@@ -2699,7 +2699,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getRemoteInetAddress</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1383">getRemoteInetAddress</a>(int&nbsp;port,
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1382">getRemoteInetAddress</a>(int&nbsp;port,
                                  long&nbsp;serverStartCode)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/net/UnknownHostException.html?is-external=true" title="class or interface in java.net">UnknownHostException</a></pre>
 <dl>
@@ -2716,7 +2716,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxBalancingTime</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1403">getMaxBalancingTime</a>()</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1402">getMaxBalancingTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Maximum time we should run balancer for</dd>
@@ -2729,7 +2729,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxRegionsInTransition</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1416">getMaxRegionsInTransition</a>()</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1415">getMaxRegionsInTransition</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Maximum number of regions in transition</dd>
@@ -2742,7 +2742,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>balanceThrottling</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1428">balanceThrottling</a>(long&nbsp;nextBalanceStartTime,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1427">balanceThrottling</a>(long&nbsp;nextBalanceStartTime,
                                int&n

<TRUNCATED>

[24/29] hbase-site git commit: Published site at d7561cee50acf2e3a52b8a38c71259d60b653ed3.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html b/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
index 2c2ea5c..61375ef 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
@@ -590,8 +590,9 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ServerMetricsBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#of-org.apache.hadoop.hbase.ServerName-int-">of</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
-  int&nbsp;versionNumber)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ServerMetricsBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#of-org.apache.hadoop.hbase.ServerName-int-java.lang.String-">of</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
+  int&nbsp;versionNumber,
+  <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;version)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a></code></td>
@@ -623,8 +624,9 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ServerMetricsBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#toServerMetrics-org.apache.hadoop.hbase.ServerName-int-org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad-">toServerMetrics</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+<td class="colLast"><span class="typeNameLabel">ServerMetricsBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#toServerMetrics-org.apache.hadoop.hbase.ServerName-int-java.lang.String-org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad-">toServerMetrics</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                int&nbsp;versionNumber,
+               <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;version,
                org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad&nbsp;serverLoadPB)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
@@ -740,8 +742,9 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.html#ServerMetricsBuilder-org.apache.hadoop.hbase.ServerName-">ServerMetricsBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#ServerMetricsImpl-org.apache.hadoop.hbase.ServerName-int-long-long-org.apache.hadoop.hbase.Size-org.apache.hadoop.hbase.Size-int-java.util.List-org.apache.hadoop.hbase.replication.ReplicationLoadSink-java.util.Map-java.util.Set-long-long-">ServerMetricsImpl</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#ServerMetricsImpl-org.apache.hadoop.hbase.ServerName-int-java.lang.String-long-long-org.apache.hadoop.hbase.Size-org.apache.hadoop.hbase.Size-int-java.util.List-org.apache.hadoop.hbase.replication.ReplicationLoadSink-java.util.Map-java.util.Set-long-long-">ServerMetricsImpl</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                  int&nbsp;versionNumber,
+                 <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;version,
                  long&nbsp;requestCountPerSecond,
                  long&nbsp;requestCount,
                  <a href="../../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;usedHeapSize,
@@ -3274,8 +3277,9 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ServerManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#regionServerStartup-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest-int-java.net.InetAddress-">regionServerStartup</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest&nbsp;request,
+<td class="colLast"><span class="typeNameLabel">ServerManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#regionServerStartup-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest-int-java.lang.String-java.net.InetAddress-">regionServerStartup</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest&nbsp;request,
                    int&nbsp;versionNumber,
+                   <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;version,
                    <a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;ia)</code>
 <div class="block">Let the server manager know a new regionserver has come online</div>
 </td>
@@ -3564,126 +3568,132 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <td class="colLast"><span class="typeNameLabel">ServerManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#getRsAdmin-org.apache.hadoop.hbase.ServerName-">getRsAdmin</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>int</code></td>
-<td class="colLast"><span class="typeNameLabel">ServerManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#getServerVersion-org.apache.hadoop.hbase.ServerName-">getServerVersion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
-<div class="block">May return 0 when server is not online.</div>
-</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
 <td class="colLast"><span class="typeNameLabel">DeadServer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/DeadServer.html#getTimeOfDeath-org.apache.hadoop.hbase.ServerName-">getTimeOfDeath</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;deadServerName)</code>
 <div class="block">Get the time when a server died</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code><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"><span class="typeNameLabel">ServerManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#getVersion-org.apache.hadoop.hbase.ServerName-">getVersion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<div class="block">May return "0.0.0" when server is not online</div>
+</td>
+</tr>
 <tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><span class="typeNameLabel">ServerManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#getVersionNumber-org.apache.hadoop.hbase.ServerName-">getVersionNumber</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
+<div class="block">May return 0 when server is not online.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><span class="typeNameLabel">SplitLogManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.html#handleDeadWorker-org.apache.hadoop.hbase.ServerName-">handleDeadWorker</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;workerName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">SplitLogManager.Task.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.Task.html#heartbeat-long-int-org.apache.hadoop.hbase.ServerName-">heartbeat</a></span>(long&nbsp;time,
          int&nbsp;version,
          <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;worker)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionState.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html#isClosingOrClosedOnServer-org.apache.hadoop.hbase.ServerName-">isClosingOrClosedOnServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">DeadServer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/DeadServer.html#isDeadServer-org.apache.hadoop.hbase.ServerName-">isDeadServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionState.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html#isMergingNewOnServer-org.apache.hadoop.hbase.ServerName-">isMergingNewOnServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionState.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html#isMergingNewOrOfflineOnServer-org.apache.hadoop.hbase.ServerName-">isMergingNewOrOfflineOnServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionState.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html#isMergingNewOrOpenedOnServer-org.apache.hadoop.hbase.ServerName-">isMergingNewOrOpenedOnServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionState.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html#isMergingOnServer-org.apache.hadoop.hbase.ServerName-">isMergingOnServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionState.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html#isOnServer-org.apache.hadoop.hbase.ServerName-">isOnServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionState.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html#isOpenedOnServer-org.apache.hadoop.hbase.ServerName-">isOpenedOnServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionState.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html#isOpeningOrFailedOpenOnServer-org.apache.hadoop.hbase.ServerName-">isOpeningOrFailedOpenOnServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionState.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html#isOpeningOrOpenedOnServer-org.apache.hadoop.hbase.ServerName-">isOpeningOrOpenedOnServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">ServerManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#isServerDead-org.apache.hadoop.hbase.ServerName-">isServerDead</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block">Check if a server is known to be dead.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">ServerManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#isServerOnline-org.apache.hadoop.hbase.ServerName-">isServerOnline</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionState.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html#isSplittingNewOnServer-org.apache.hadoop.hbase.ServerName-">isSplittingNewOnServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionState.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html#isSplittingOnServer-org.apache.hadoop.hbase.ServerName-">isSplittingOnServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionState.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html#isSplittingOrOpenedOnServer-org.apache.hadoop.hbase.ServerName-">isSplittingOrOpenedOnServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionState.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html#isSplittingOrSplitOnServer-org.apache.hadoop.hbase.ServerName-">isSplittingOrSplitOnServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">ServerManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#moveFromOnlineToDeadServers-org.apache.hadoop.hbase.ServerName-">moveFromOnlineToDeadServers</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">DeadServer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/DeadServer.html#notifyServer-org.apache.hadoop.hbase.ServerName-">notifyServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>
 <div class="block">Notify that we started processing this dead server.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterCoprocessorHost.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postMove-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">postMove</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region,
         <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;srcServer,
         <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;destServer)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterCoprocessorHost.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postRecommissionRegionServer-org.apache.hadoop.hbase.ServerName-java.util.List-">postRecommissionRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
                             <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;byte[]&gt;&nbsp;encodedRegionNames)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterCoprocessorHost.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preMove-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">preMove</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region,
        <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;srcServer,
        <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;destServer)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterCoprocessorHost.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preRecommissionRegionServer-org.apache.hadoop.hbase.ServerName-java.util.List-">preRecommissionRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
                            <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;byte[]&gt;&nbsp;encodedRegionNames)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HMaster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#recommissionRegionServer-org.apache.hadoop.hbase.ServerName-java.util.List-">recommissionRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
                         <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;byte[]&gt;&nbsp;encodedRegionNames)</code>
@@ -3691,82 +3701,82 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
  assignments.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><span class="typeNameLabel">ServerManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#recordNewServerWithLock-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerMetrics-">recordNewServerWithLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                        <a href="../../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a>&nbsp;sl)</code>
 <div class="block">Adds the onlineServers list.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadBalancer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#regionOnline-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-">regionOnline</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
             <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>
 <div class="block">Marks the region as online at balancer.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AssignmentListener.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/AssignmentListener.html#regionOpened-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-">regionOpened</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
             <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block">The region was opened on the specified server.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">ServerManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#regionServerReport-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerMetrics-">regionServerReport</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
                   <a href="../../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a>&nbsp;sl)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">DrainingServerTracker.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/DrainingServerTracker.html#remove-org.apache.hadoop.hbase.ServerName-">remove</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">DeadServer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/DeadServer.html#removeDeadServer-org.apache.hadoop.hbase.ServerName-">removeDeadServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;deadServerName)</code>
 <div class="block">remove the specified dead server</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">ServerManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#removeServerFromDrainList-org.apache.hadoop.hbase.ServerName-">removeServerFromDrainList</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">ServerManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#sendRegionWarmup-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.client.RegionInfo-">sendRegionWarmup</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
                 <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region)</code>
 <div class="block">Sends a WARMUP RPC to the specified server to warmup the specified region.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">ServerListener.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html#serverAdded-org.apache.hadoop.hbase.ServerName-">serverAdded</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block">The server has joined the cluster.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">ServerListener.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html#serverRemoved-org.apache.hadoop.hbase.ServerName-">serverRemoved</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block">The server was removed from the cluster.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionPlan.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/RegionPlan.html#setDestination-org.apache.hadoop.hbase.ServerName-">setDestination</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;dest)</code>
 <div class="block">Set the destination server for the plan for this region.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterWalManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterWalManager.html#splitLog-org.apache.hadoop.hbase.ServerName-">splitLog</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterWalManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterWalManager.html#splitMetaLog-org.apache.hadoop.hbase.ServerName-">splitMetaLog</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block">Specialized method to handle the splitting for meta WAL</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">ServerManager.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html#updateLastFlushedSequenceIds-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerMetrics-">updateLastFlushedSequenceIds</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
                             <a href="../../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a>&nbsp;hsl)</code>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/class-use/Size.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/Size.html b/devapidocs/org/apache/hadoop/hbase/class-use/Size.html
index 2f18a03..0c2a5fb 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/Size.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/Size.html
@@ -397,8 +397,9 @@
                  long&nbsp;lastMajorCompactionTimestamp)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#ServerMetricsImpl-org.apache.hadoop.hbase.ServerName-int-long-long-org.apache.hadoop.hbase.Size-org.apache.hadoop.hbase.Size-int-java.util.List-org.apache.hadoop.hbase.replication.ReplicationLoadSink-java.util.Map-java.util.Set-long-long-">ServerMetricsImpl</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ServerMetricsBuilder.ServerMetricsImpl.html#ServerMetricsImpl-org.apache.hadoop.hbase.ServerName-int-java.lang.String-long-long-org.apache.hadoop.hbase.Size-org.apache.hadoop.hbase.Size-int-java.util.List-org.apache.hadoop.hbase.replication.ReplicationLoadSink-java.util.Map-java.util.Set-long-long-">ServerMetricsImpl</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                  int&nbsp;versionNumber,
+                 <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;version,
                  long&nbsp;requestCountPerSecond,
                  long&nbsp;requestCount,
                  <a href="../../../../../org/apache/hadoop/hbase/Size.html" title="class in org.apache.hadoop.hbase">Size</a>&nbsp;usedHeapSize,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/client/VersionInfoUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/VersionInfoUtil.html b/devapidocs/org/apache/hadoop/hbase/client/VersionInfoUtil.html
index ca3e995..2f35fee 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/VersionInfoUtil.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/VersionInfoUtil.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9};
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -164,33 +164,29 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                               int&nbsp;minor)</code>&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
-<td class="colFirst"><code>private static org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo</code></td>
+<td class="colFirst"><code>static org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/VersionInfoUtil.html#getCurrentClientVersionInfo--">getCurrentClientVersionInfo</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i3" class="rowColor">
-<td class="colFirst"><code>static int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/VersionInfoUtil.html#getCurrentClientVersionNumber--">getCurrentClientVersionNumber</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i4" 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/client/VersionInfoUtil.html#getVersionComponents-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo-">getVersionComponents</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo&nbsp;versionInfo)</code>
 <div class="block">Returns the version components
  Examples: "1.2.3" returns [1, 2, 3], "4.5.6-SNAPSHOT" returns [4, 5, 6, "SNAPSHOT"]</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/VersionInfoUtil.html#getVersionNumber-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo-">getVersionNumber</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo&nbsp;versionInfo)</code>
 <div class="block">Pack the full number version in a int.</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/VersionInfoUtil.html#hasMinimumVersion-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo-int-int-">hasMinimumVersion</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo&nbsp;versionInfo,
                  int&nbsp;major,
                  int&nbsp;minor)</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i6" 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/client/VersionInfoUtil.html#versionNumberToString-int-">versionNumberToString</a></span>(int&nbsp;version)</code>&nbsp;</td>
 </tr>
@@ -260,34 +256,20 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getCurrentClientVersionInfo</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/VersionInfoUtil.html#line.73">getCurrentClientVersionInfo</a>()</pre>
+<pre>public static&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/VersionInfoUtil.html#line.73">getCurrentClientVersionInfo</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the versionInfo extracted from the current RpcCallContext</dd>
 </dl>
 </li>
 </ul>
-<a name="getCurrentClientVersionNumber--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getCurrentClientVersionNumber</h4>
-<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/VersionInfoUtil.html#line.81">getCurrentClientVersionNumber</a>()</pre>
-<dl>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>the version number extracted from the current RpcCallContext as int.
-         (e.g. 0x0103004 is 1.3.4)</dd>
-</dl>
-</li>
-</ul>
 <a name="versionNumberToString-int-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>versionNumberToString</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/client/VersionInfoUtil.html#line.91">versionNumberToString</a>(int&nbsp;version)</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/client/VersionInfoUtil.html#line.83">versionNumberToString</a>(int&nbsp;version)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>version</code> - </dd>
@@ -303,7 +285,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getVersionNumber</h4>
-<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/VersionInfoUtil.html#line.105">getVersionNumber</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo&nbsp;versionInfo)</pre>
+<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/VersionInfoUtil.html#line.97">getVersionNumber</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo&nbsp;versionInfo)</pre>
 <div class="block">Pack the full number version in a int. by shifting each component by 8bit,
  except the dot release which has 12bit.
  Examples: (1.3.4 is 0x0103004, 2.1.0 is 0x0201000)</div>
@@ -321,7 +303,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>buildVersionNumber</h4>
-<pre>private static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/VersionInfoUtil.html#line.131">buildVersionNumber</a>(int&nbsp;major,
+<pre>private static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/VersionInfoUtil.html#line.123">buildVersionNumber</a>(int&nbsp;major,
                                       int&nbsp;minor,
                                       int&nbsp;patch)</pre>
 <div class="block">Pack the full number version in a int. by shifting each component by 8bit,
@@ -343,7 +325,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getVersionComponents</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>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/VersionInfoUtil.html#line.140">getVersionComponents</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo&nbsp;versionInfo)</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>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/VersionInfoUtil.html#line.132">getVersionComponents</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo&nbsp;versionInfo)</pre>
 <div class="block">Returns the version components
  Examples: "1.2.3" returns [1, 2, 3], "4.5.6-SNAPSHOT" returns [4, 5, 6, "SNAPSHOT"]</div>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/client/class-use/Admin.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/class-use/Admin.html b/devapidocs/org/apache/hadoop/hbase/client/class-use/Admin.html
index c6bee51..2f73d9b 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/class-use/Admin.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/class-use/Admin.html
@@ -145,10 +145,14 @@ service.</div>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.tool.coprocessor">org.apache.hadoop.hbase.tool.coprocessor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hbase.archetypes.exemplars.client">org.apache.hbase.archetypes.exemplars.client</a></td>
 <td class="colLast">
 <div class="block">This package provides fully-functional exemplar Java code demonstrating
@@ -156,7 +160,7 @@ service.</div>
  archetype with hbase-client dependency.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="#org.apache.hbase.archetypes.exemplars.shaded_client">org.apache.hbase.archetypes.exemplars.shaded_client</a></td>
 <td class="colLast">
 <div class="block">This package provides fully-functional exemplar Java code demonstrating
@@ -654,6 +658,27 @@ service.</div>
 </tbody>
 </table>
 </li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.tool.coprocessor">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a> in <a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/package-summary.html">org.apache.hadoop.hbase.tool.coprocessor</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/tool/coprocessor/package-summary.html">org.apache.hadoop.hbase.tool.coprocessor</a> with parameters of type <a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</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>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">CoprocessorValidator.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#validateTables-java.lang.ClassLoader-org.apache.hadoop.hbase.client.Admin-java.util.regex.Pattern-java.util.List-">validateTables</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;classLoader,
+              <a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern,
+              <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/tool/coprocessor/CoprocessorViolation.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorViolation</a>&gt;&nbsp;violations)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.util">
 <!--   -->
 </a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/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 2ca230f..4f0b532 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -552,24 +552,24 @@
 <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.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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/dbe3a233/devapidocs/org/apache/hadoop/hbase/client/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/package-use.html b/devapidocs/org/apache/hadoop/hbase/client/package-use.html
index f977038..13deb21 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-use.html
@@ -339,22 +339,26 @@ service.</div>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.tool.coprocessor">org.apache.hadoop.hbase.tool.coprocessor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.util.compaction">org.apache.hadoop.hbase.util.compaction</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.wal">org.apache.hadoop.hbase.wal</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.util.compaction">org.apache.hadoop.hbase.util.compaction</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.zookeeper">org.apache.hadoop.hbase.zookeeper</a></td>
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.wal">org.apache.hadoop.hbase.wal</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.zookeeper">org.apache.hadoop.hbase.zookeeper</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.hbase.archetypes.exemplars.client">org.apache.hbase.archetypes.exemplars.client</a></td>
 <td class="colLast">
 <div class="block">This package provides fully-functional exemplar Java code demonstrating
@@ -3547,6 +3551,23 @@ service.</div>
 </tbody>
 </table>
 </li>
+<li class="blockList"><a name="org.apache.hadoop.hbase.tool.coprocessor">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a> used by <a href="../../../../../org/apache/hadoop/hbase/tool/coprocessor/package-summary.html">org.apache.hadoop.hbase.tool.coprocessor</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/Admin.html#org.apache.hadoop.hbase.tool.coprocessor">Admin</a>
+<div class="block">The administrative API for HBase.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
 <li class="blockList"><a name="org.apache.hadoop.hbase.util">
 <!--   -->
 </a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html b/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html
index e67b778..329f62f 100644
--- a/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html
@@ -201,8 +201,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.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.MetaTableOps.html" title="enum in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">MetaTableMetrics.MetaTableOps</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.MutationType.html" title="enum in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">RegionObserver.MutationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.MetaTableOps.html" title="enum in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">MetaTableMetrics.MetaTableOps</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/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 b304b1f..083fd46 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/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/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/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.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/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/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/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/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/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/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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/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 00d865f..faa09c1 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/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.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>
-<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/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/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/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 a6039ad..29a79fd 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -349,9 +349,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.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>
 <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/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/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 bc33c0a..81c504b 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/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/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/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/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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html b/devapidocs/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
index d772bd4..9d48652 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.251">HMaster.InitializationMonitor</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.250">HMaster.InitializationMonitor</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" title="class in org.apache.hadoop.hbase.util">HasThread</a></pre>
 <div class="block">Protection against zombie master. Started once Master accepts active responsibility and
  starts taking over responsibilities. Allows a finite time window before giving up ownership.</div>
@@ -250,7 +250,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>TIMEOUT_KEY</h4>
-<pre>public 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/master/HMaster.InitializationMonitor.html#line.253">TIMEOUT_KEY</a></pre>
+<pre>public 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/master/HMaster.InitializationMonitor.html#line.252">TIMEOUT_KEY</a></pre>
 <div class="block">The amount of time in milliseconds to sleep before checking initialization status.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -264,7 +264,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>TIMEOUT_DEFAULT</h4>
-<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.254">TIMEOUT_DEFAULT</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.253">TIMEOUT_DEFAULT</a></pre>
 </li>
 </ul>
 <a name="HALT_KEY">
@@ -273,7 +273,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>HALT_KEY</h4>
-<pre>public 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/master/HMaster.InitializationMonitor.html#line.260">HALT_KEY</a></pre>
+<pre>public 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/master/HMaster.InitializationMonitor.html#line.259">HALT_KEY</a></pre>
 <div class="block">When timeout expired and initialization has not complete, call <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/System.html?is-external=true#exit-int-" title="class or interface in java.lang"><code>System.exit(int)</code></a> when
  true, do nothing otherwise.</div>
 <dl>
@@ -288,7 +288,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>HALT_DEFAULT</h4>
-<pre>public static final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.261">HALT_DEFAULT</a></pre>
+<pre>public static final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.260">HALT_DEFAULT</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.master.HMaster.InitializationMonitor.HALT_DEFAULT">Constant Field Values</a></dd>
@@ -301,7 +301,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>master</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.263">master</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.262">master</a></pre>
 </li>
 </ul>
 <a name="timeout">
@@ -310,7 +310,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>timeout</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.264">timeout</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.263">timeout</a></pre>
 </li>
 </ul>
 <a name="haltOnTimeout">
@@ -319,7 +319,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>haltOnTimeout</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.265">haltOnTimeout</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.264">haltOnTimeout</a></pre>
 </li>
 </ul>
 </li>
@@ -336,7 +336,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>InitializationMonitor</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.268">InitializationMonitor</a>(<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;master)</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.267">InitializationMonitor</a>(<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;master)</pre>
 <div class="block">Creates a Thread that monitors the <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html#isInitialized--"><code>HMaster.isInitialized()</code></a> state.</div>
 </li>
 </ul>
@@ -354,7 +354,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.277">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html#line.276">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/dbe3a233/devapidocs/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html b/devapidocs/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html
index a9c669b..4f29201 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html
@@ -136,7 +136,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2852">HMaster.MasterStoppedException</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2850">HMaster.MasterStoppedException</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -205,7 +205,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/DoNotRetryIOException.ht
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MasterStoppedException</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html#line.2853">MasterStoppedException</a>()</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html#line.2851">MasterStoppedException</a>()</pre>
 </li>
 </ul>
 </li>