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 2017/09/05 15:13:43 UTC

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

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site 85f4b09a2 -> 96bf4e086


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html
index e1672b2..435a9e4 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html
@@ -27,221 +27,225 @@
 <span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.tool;<a name="line.19"></a>
 <span class="sourceLineNo">020</span><a name="line.20"></a>
 <span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.*;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.client.Put;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.client.Table;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.util.ToolRunner;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.log4j.Appender;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.log4j.LogManager;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.log4j.spi.LoggingEvent;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Iterables;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.junit.After;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.junit.Before;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.junit.Rule;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.junit.Test;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.junit.experimental.categories.Category;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.junit.rules.TestName;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.junit.runner.RunWith;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.mockito.ArgumentMatcher;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.mockito.Mock;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.mockito.runners.MockitoJUnitRunner;<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>import java.util.concurrent.ExecutorService;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import java.util.concurrent.ScheduledThreadPoolExecutor;<a name="line.43"></a>
-<span class="sourceLineNo">044</span><a name="line.44"></a>
-<span class="sourceLineNo">045</span>import static org.junit.Assert.assertNotEquals;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import static org.mockito.Matchers.anyLong;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import static org.mockito.Matchers.eq;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import static org.mockito.Matchers.isA;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import static org.mockito.Matchers.argThat;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import static org.junit.Assert.assertEquals;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import static org.mockito.Mockito.*;<a name="line.51"></a>
-<span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span>@RunWith(MockitoJUnitRunner.class)<a name="line.53"></a>
-<span class="sourceLineNo">054</span>@Category({MediumTests.class})<a name="line.54"></a>
-<span class="sourceLineNo">055</span>public class TestCanaryTool {<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>  private HBaseTestingUtility testingUtility;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  private static final byte[] FAMILY = Bytes.toBytes("f");<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  private static final byte[] COLUMN = Bytes.toBytes("col");<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>  @Rule<a name="line.61"></a>
-<span class="sourceLineNo">062</span>  public TestName name = new TestName();<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>  @Before<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  public void setUp() throws Exception {<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    testingUtility = new HBaseTestingUtility();<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    testingUtility.startMiniCluster();<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    LogManager.getRootLogger().addAppender(mockAppender);<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  }<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>  @After<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  public void tearDown() throws Exception {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    testingUtility.shutdownMiniCluster();<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    LogManager.getRootLogger().removeAppender(mockAppender);<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>  @Mock<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  Appender mockAppender;<a name="line.78"></a>
-<span class="sourceLineNo">079</span><a name="line.79"></a>
-<span class="sourceLineNo">080</span>  @Test<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  public void testBasicZookeeperCanaryWorks() throws Exception {<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    Integer port =<a name="line.82"></a>
-<span class="sourceLineNo">083</span>        Iterables.getOnlyElement(testingUtility.getZkCluster().getClientPortList(), null);<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    testingUtility.getConfiguration().set(HConstants.ZOOKEEPER_QUORUM,<a name="line.84"></a>
-<span class="sourceLineNo">085</span>        "localhost:" + port + "/hbase");<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    ExecutorService executor = new ScheduledThreadPoolExecutor(2);<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    Canary.ZookeeperStdOutSink sink = spy(new Canary.ZookeeperStdOutSink());<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    Canary canary = new Canary(executor, sink);<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    String[] args = { "-t", "10000", "-zookeeper" };<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    ToolRunner.run(testingUtility.getConfiguration(), canary, args);<a name="line.90"></a>
-<span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>    String baseZnode = testingUtility.getConfiguration()<a name="line.92"></a>
-<span class="sourceLineNo">093</span>        .get(HConstants.ZOOKEEPER_ZNODE_PARENT, HConstants.DEFAULT_ZOOKEEPER_ZNODE_PARENT);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    verify(sink, atLeastOnce())<a name="line.94"></a>
-<span class="sourceLineNo">095</span>        .publishReadTiming(eq(baseZnode), eq("localhost:" + port), anyLong());<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>  @Test<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  public void testBasicCanaryWorks() throws Exception {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    final TableName tableName = TableName.valueOf(name.getMethodName());<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    Table table = testingUtility.createTable(tableName, new byte[][] { FAMILY });<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    // insert some test rows<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    for (int i=0; i&lt;1000; i++) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      byte[] iBytes = Bytes.toBytes(i);<a name="line.104"></a>
-<span class="sourceLineNo">105</span>      Put p = new Put(iBytes);<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      p.addColumn(FAMILY, COLUMN, iBytes);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      table.put(p);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    }<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    ExecutorService executor = new ScheduledThreadPoolExecutor(1);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    Canary.RegionStdOutSink sink = spy(new Canary.RegionStdOutSink());<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    Canary canary = new Canary(executor, sink);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    String[] args = { "-writeSniffing", "-t", "10000", name.getMethodName() };<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    ToolRunner.run(testingUtility.getConfiguration(), canary, args);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    assertEquals("verify no read error count", 0, canary.getReadFailures().size());<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    assertEquals("verify no write error count", 0, canary.getWriteFailures().size());<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    verify(sink, atLeastOnce()).publishReadTiming(isA(ServerName.class), isA(HRegionInfo.class), isA(HColumnDescriptor.class), anyLong());<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>  @Test<a name="line.119"></a>
-<span class="sourceLineNo">120</span>  public void testReadTableTimeouts() throws Exception {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    final TableName [] tableNames = new TableName[2];<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    tableNames[0] = TableName.valueOf(name.getMethodName() + "1");<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    tableNames[1] = TableName.valueOf(name.getMethodName() + "2");<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    // Create 2 test tables.<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    for (int j = 0; j&lt;2; j++) {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      Table table = testingUtility.createTable(tableNames[j], new byte[][] { FAMILY });<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      // insert some test rows<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      for (int i=0; i&lt;1000; i++) {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>        byte[] iBytes = Bytes.toBytes(i + j);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>        Put p = new Put(iBytes);<a name="line.130"></a>
-<span class="sourceLineNo">131</span>        p.addColumn(FAMILY, COLUMN, iBytes);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>        table.put(p);<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>    ExecutorService executor = new ScheduledThreadPoolExecutor(1);<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    Canary.RegionStdOutSink sink = spy(new Canary.RegionStdOutSink());<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    Canary canary = new Canary(executor, sink);<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    String configuredTimeoutStr = tableNames[0].getNameAsString() + "=" + Long.MAX_VALUE + "," +<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      tableNames[1].getNameAsString() + "=0";<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    String[] args = { "-readTableTimeouts", configuredTimeoutStr, name.getMethodName() + "1", name.getMethodName() + "2"};<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    ToolRunner.run(testingUtility.getConfiguration(), canary, args);<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    verify(sink, times(tableNames.length)).initializeAndGetReadLatencyForTable(isA(String.class));<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    for (int i=0; i&lt;2; i++) {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      assertNotEquals("verify non-null read latency", null, sink.getReadLatencyMap().get(tableNames[i].getNameAsString()));<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      assertNotEquals("verify non-zero read latency", 0L, sink.getReadLatencyMap().get(tableNames[i].getNameAsString()));<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    }<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    // One table's timeout is set for 0 ms and thus, should lead to an error.<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    verify(mockAppender, times(1)).doAppend(argThat(new ArgumentMatcher&lt;LoggingEvent&gt;() {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      @Override<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      public boolean matches(Object argument) {<a name="line.150"></a>
-<span class="sourceLineNo">151</span>        return ((LoggingEvent) argument).getRenderedMessage().contains("exceeded the configured read timeout.");<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>    verify(mockAppender, times(2)).doAppend(argThat(new ArgumentMatcher&lt;LoggingEvent&gt;() {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      @Override<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      public boolean matches(Object argument) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        return ((LoggingEvent) argument).getRenderedMessage().contains("The configured read timeout was");<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    }));<a name="line.159"></a>
-<span class="sourceLineNo">160</span>  }<a name="line.160"></a>
-<span class="sourceLineNo">161</span><a name="line.161"></a>
-<span class="sourceLineNo">162</span>  @Test<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  public void testWriteTableTimeout() throws Exception {<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    ExecutorService executor = new ScheduledThreadPoolExecutor(1);<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    Canary.RegionStdOutSink sink = spy(new Canary.RegionStdOutSink());<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    Canary canary = new Canary(executor, sink);<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    String[] args = { "-writeSniffing", "-writeTableTimeout", String.valueOf(Long.MAX_VALUE)};<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    ToolRunner.run(testingUtility.getConfiguration(), canary, args);<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    assertNotEquals("verify non-null write latency", null, sink.getWriteLatency());<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    assertNotEquals("verify non-zero write latency", 0L, sink.getWriteLatency());<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    verify(mockAppender, times(1)).doAppend(argThat(new ArgumentMatcher&lt;LoggingEvent&gt;() {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>      @Override<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      public boolean matches(Object argument) {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        return ((LoggingEvent) argument).getRenderedMessage().contains("The configured write timeout was");<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      }<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    }));<a name="line.176"></a>
-<span class="sourceLineNo">177</span>  }<a name="line.177"></a>
-<span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>  //no table created, so there should be no regions<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  @Test<a name="line.180"></a>
-<span class="sourceLineNo">181</span>  public void testRegionserverNoRegions() throws Exception {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    runRegionserverCanary();<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    verify(mockAppender).doAppend(argThat(new ArgumentMatcher&lt;LoggingEvent&gt;() {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      @Override<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      public boolean matches(Object argument) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>        return ((LoggingEvent) argument).getRenderedMessage().contains("Regionserver not serving any regions");<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>  }<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  //by creating a table, there shouldn't be any region servers not serving any regions<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  @Test<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  public void testRegionserverWithRegions() throws Exception {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    final TableName tableName = TableName.valueOf(name.getMethodName());<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    testingUtility.createTable(tableName, new byte[][] { FAMILY });<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    runRegionserverCanary();<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    verify(mockAppender, never()).doAppend(argThat(new ArgumentMatcher&lt;LoggingEvent&gt;() {<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      @Override<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      public boolean matches(Object argument) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        return ((LoggingEvent) argument).getRenderedMessage().contains("Regionserver not serving any regions");<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      }<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    }));<a name="line.202"></a>
-<span class="sourceLineNo">203</span>  }<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  @Test<a name="line.205"></a>
-<span class="sourceLineNo">206</span>  public void testRawScanConfig() throws Exception {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    final TableName tableName = TableName.valueOf(name.getMethodName());<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    Table table = testingUtility.createTable(tableName, new byte[][] { FAMILY });<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    // insert some test rows<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    for (int i=0; i&lt;1000; i++) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      byte[] iBytes = Bytes.toBytes(i);<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      Put p = new Put(iBytes);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      p.addColumn(FAMILY, COLUMN, iBytes);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      table.put(p);<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    }<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    ExecutorService executor = new ScheduledThreadPoolExecutor(1);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    Canary.RegionStdOutSink sink = spy(new Canary.RegionStdOutSink());<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    Canary canary = new Canary(executor, sink);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    String[] args = { "-t", "10000", name.getMethodName() };<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    org.apache.hadoop.conf.Configuration conf = new org.apache.hadoop.conf.Configuration(testingUtility.getConfiguration());<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    conf.setBoolean(HConstants.HBASE_CANARY_READ_RAW_SCAN_KEY, true);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    ToolRunner.run(conf, canary, args);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    verify(sink, atLeastOnce())<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        .publishReadTiming(isA(ServerName.class), isA(HRegionInfo.class), isA(HColumnDescriptor.class), anyLong());<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    assertEquals("verify no read error count", 0, canary.getReadFailures().size());<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>  private void runRegionserverCanary() throws Exception {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    ExecutorService executor = new ScheduledThreadPoolExecutor(1);<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    Canary canary = new Canary(executor, new Canary.RegionServerStdOutSink());<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    String[] args = { "-t", "10000", "-regionserver"};<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    ToolRunner.run(testingUtility.getConfiguration(), canary, args);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    assertEquals("verify no read error count", 0, canary.getReadFailures().size());<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  }<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span>}<a name="line.236"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.client.Put;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.client.Table;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.util.ToolRunner;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.log4j.Appender;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.log4j.LogManager;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.log4j.spi.LoggingEvent;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Iterables;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.junit.After;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.junit.Before;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.junit.Rule;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.junit.Test;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.junit.experimental.categories.Category;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.junit.rules.TestName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.junit.runner.RunWith;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.mockito.ArgumentMatcher;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.mockito.Mock;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.mockito.runners.MockitoJUnitRunner;<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>import java.util.concurrent.ExecutorService;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import java.util.concurrent.ScheduledThreadPoolExecutor;<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>import static org.junit.Assert.assertNotEquals;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import static org.mockito.Matchers.anyLong;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import static org.mockito.Matchers.eq;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import static org.mockito.Matchers.isA;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import static org.mockito.Matchers.argThat;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import static org.junit.Assert.assertEquals;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import static org.mockito.Mockito.*;<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>@RunWith(MockitoJUnitRunner.class)<a name="line.54"></a>
+<span class="sourceLineNo">055</span>@Category({MediumTests.class})<a name="line.55"></a>
+<span class="sourceLineNo">056</span>public class TestCanaryTool {<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>  private HBaseTestingUtility testingUtility;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  private static final byte[] FAMILY = Bytes.toBytes("f");<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  private static final byte[] COLUMN = Bytes.toBytes("col");<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  @Rule<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  public TestName name = new TestName();<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>  @Before<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  public void setUp() throws Exception {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    testingUtility = new HBaseTestingUtility();<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    testingUtility.startMiniCluster();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    LogManager.getRootLogger().addAppender(mockAppender);<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>  @After<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  public void tearDown() throws Exception {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    testingUtility.shutdownMiniCluster();<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    LogManager.getRootLogger().removeAppender(mockAppender);<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>  @Mock<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  Appender mockAppender;<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>  @Test<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  public void testBasicZookeeperCanaryWorks() throws Exception {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    Integer port =<a name="line.83"></a>
+<span class="sourceLineNo">084</span>        Iterables.getOnlyElement(testingUtility.getZkCluster().getClientPortList(), null);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    testingUtility.getConfiguration().set(HConstants.ZOOKEEPER_QUORUM,<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        "localhost:" + port + "/hbase");<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    ExecutorService executor = new ScheduledThreadPoolExecutor(2);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    Canary.ZookeeperStdOutSink sink = spy(new Canary.ZookeeperStdOutSink());<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    Canary canary = new Canary(executor, sink);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    String[] args = { "-t", "10000", "-zookeeper" };<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    ToolRunner.run(testingUtility.getConfiguration(), canary, args);<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>    String baseZnode = testingUtility.getConfiguration()<a name="line.93"></a>
+<span class="sourceLineNo">094</span>        .get(HConstants.ZOOKEEPER_ZNODE_PARENT, HConstants.DEFAULT_ZOOKEEPER_ZNODE_PARENT);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    verify(sink, atLeastOnce())<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        .publishReadTiming(eq(baseZnode), eq("localhost:" + port), anyLong());<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>  @Test<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  public void testBasicCanaryWorks() throws Exception {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    final TableName tableName = TableName.valueOf(name.getMethodName());<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    Table table = testingUtility.createTable(tableName, new byte[][] { FAMILY });<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    // insert some test rows<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    for (int i=0; i&lt;1000; i++) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      byte[] iBytes = Bytes.toBytes(i);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      Put p = new Put(iBytes);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      p.addColumn(FAMILY, COLUMN, iBytes);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      table.put(p);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    ExecutorService executor = new ScheduledThreadPoolExecutor(1);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    Canary.RegionStdOutSink sink = spy(new Canary.RegionStdOutSink());<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    Canary canary = new Canary(executor, sink);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    String[] args = { "-writeSniffing", "-t", "10000", name.getMethodName() };<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    ToolRunner.run(testingUtility.getConfiguration(), canary, args);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    assertEquals("verify no read error count", 0, canary.getReadFailures().size());<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    assertEquals("verify no write error count", 0, canary.getWriteFailures().size());<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    verify(sink, atLeastOnce()).publishReadTiming(isA(ServerName.class), isA(HRegionInfo.class),<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      isA(ColumnFamilyDescriptor.class), anyLong());<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>  @Test<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  public void testReadTableTimeouts() throws Exception {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    final TableName [] tableNames = new TableName[2];<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    tableNames[0] = TableName.valueOf(name.getMethodName() + "1");<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    tableNames[1] = TableName.valueOf(name.getMethodName() + "2");<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    // Create 2 test tables.<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    for (int j = 0; j&lt;2; j++) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      Table table = testingUtility.createTable(tableNames[j], new byte[][] { FAMILY });<a name="line.128"></a>
+<span class="sourceLineNo">129</span>      // insert some test rows<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      for (int i=0; i&lt;1000; i++) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>        byte[] iBytes = Bytes.toBytes(i + j);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        Put p = new Put(iBytes);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        p.addColumn(FAMILY, COLUMN, iBytes);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        table.put(p);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    }<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    ExecutorService executor = new ScheduledThreadPoolExecutor(1);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    Canary.RegionStdOutSink sink = spy(new Canary.RegionStdOutSink());<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    Canary canary = new Canary(executor, sink);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    String configuredTimeoutStr = tableNames[0].getNameAsString() + "=" + Long.MAX_VALUE + "," +<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      tableNames[1].getNameAsString() + "=0";<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    String[] args = { "-readTableTimeouts", configuredTimeoutStr, name.getMethodName() + "1", name.getMethodName() + "2"};<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    ToolRunner.run(testingUtility.getConfiguration(), canary, args);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    verify(sink, times(tableNames.length)).initializeAndGetReadLatencyForTable(isA(String.class));<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    for (int i=0; i&lt;2; i++) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      assertNotEquals("verify non-null read latency", null, sink.getReadLatencyMap().get(tableNames[i].getNameAsString()));<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      assertNotEquals("verify non-zero read latency", 0L, sink.getReadLatencyMap().get(tableNames[i].getNameAsString()));<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    }<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    // One table's timeout is set for 0 ms and thus, should lead to an error.<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    verify(mockAppender, times(1)).doAppend(argThat(new ArgumentMatcher&lt;LoggingEvent&gt;() {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      @Override<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      public boolean matches(Object argument) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        return ((LoggingEvent) argument).getRenderedMessage().contains("exceeded the configured read timeout.");<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    }));<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    verify(mockAppender, times(2)).doAppend(argThat(new ArgumentMatcher&lt;LoggingEvent&gt;() {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      public boolean matches(Object argument) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        return ((LoggingEvent) argument).getRenderedMessage().contains("The configured read timeout was");<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      }<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    }));<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>  @Test<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  public void testWriteTableTimeout() throws Exception {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    ExecutorService executor = new ScheduledThreadPoolExecutor(1);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    Canary.RegionStdOutSink sink = spy(new Canary.RegionStdOutSink());<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    Canary canary = new Canary(executor, sink);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    String[] args = { "-writeSniffing", "-writeTableTimeout", String.valueOf(Long.MAX_VALUE)};<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    ToolRunner.run(testingUtility.getConfiguration(), canary, args);<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    assertNotEquals("verify non-null write latency", null, sink.getWriteLatency());<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    assertNotEquals("verify non-zero write latency", 0L, sink.getWriteLatency());<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    verify(mockAppender, times(1)).doAppend(argThat(new ArgumentMatcher&lt;LoggingEvent&gt;() {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      @Override<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      public boolean matches(Object argument) {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        return ((LoggingEvent) argument).getRenderedMessage().contains("The configured write timeout was");<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><a name="line.180"></a>
+<span class="sourceLineNo">181</span>  //no table created, so there should be no regions<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  @Test<a name="line.182"></a>
+<span class="sourceLineNo">183</span>  public void testRegionserverNoRegions() throws Exception {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    runRegionserverCanary();<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    verify(mockAppender).doAppend(argThat(new ArgumentMatcher&lt;LoggingEvent&gt;() {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      @Override<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      public boolean matches(Object argument) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        return ((LoggingEvent) argument).getRenderedMessage().contains("Regionserver not serving any regions");<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    }));<a name="line.190"></a>
+<span class="sourceLineNo">191</span>  }<a name="line.191"></a>
+<span class="sourceLineNo">192</span><a name="line.192"></a>
+<span class="sourceLineNo">193</span>  //by creating a table, there shouldn't be any region servers not serving any regions<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  @Test<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public void testRegionserverWithRegions() throws Exception {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    final TableName tableName = TableName.valueOf(name.getMethodName());<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    testingUtility.createTable(tableName, new byte[][] { FAMILY });<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    runRegionserverCanary();<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    verify(mockAppender, never()).doAppend(argThat(new ArgumentMatcher&lt;LoggingEvent&gt;() {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      @Override<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      public boolean matches(Object argument) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        return ((LoggingEvent) argument).getRenderedMessage().contains("Regionserver not serving any regions");<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    }));<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  }<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 testRawScanConfig() throws Exception {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    final TableName tableName = TableName.valueOf(name.getMethodName());<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    Table table = testingUtility.createTable(tableName, new byte[][] { FAMILY });<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    // insert some test rows<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    for (int i=0; i&lt;1000; i++) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      byte[] iBytes = Bytes.toBytes(i);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      Put p = new Put(iBytes);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      p.addColumn(FAMILY, COLUMN, iBytes);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>      table.put(p);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    ExecutorService executor = new ScheduledThreadPoolExecutor(1);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    Canary.RegionStdOutSink sink = spy(new Canary.RegionStdOutSink());<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    Canary canary = new Canary(executor, sink);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    String[] args = { "-t", "10000", name.getMethodName() };<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    org.apache.hadoop.conf.Configuration conf =<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      new org.apache.hadoop.conf.Configuration(testingUtility.getConfiguration());<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    conf.setBoolean(HConstants.HBASE_CANARY_READ_RAW_SCAN_KEY, true);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    ToolRunner.run(conf, canary, args);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    verify(sink, atLeastOnce())<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        .publishReadTiming(isA(ServerName.class), isA(HRegionInfo.class),<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        isA(ColumnFamilyDescriptor.class), anyLong());<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    assertEquals("verify no read error count", 0, canary.getReadFailures().size());<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>  private void runRegionserverCanary() throws Exception {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    ExecutorService executor = new ScheduledThreadPoolExecutor(1);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    Canary canary = new Canary(executor, new Canary.RegionServerStdOutSink());<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    String[] args = { "-t", "10000", "-regionserver"};<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    ToolRunner.run(testingUtility.getConfiguration(), canary, args);<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    assertEquals("verify no read error count", 0, canary.getReadFailures().size());<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  }<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>}<a name="line.240"></a>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.Counter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.Counter.html b/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.Counter.html
index a73c866..dd2d739 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.Counter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.Counter.html
@@ -834,289 +834,287 @@
 <span class="sourceLineNo">826</span><a name="line.826"></a>
 <span class="sourceLineNo">827</span>    // Run the MR Job<a name="line.827"></a>
 <span class="sourceLineNo">828</span>    if (!job.waitForCompletion(true)) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>      // TODO: Replace the fixed string with job.getStatus().getFailureInfo()<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      // when it will be available on all the supported versions.<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      throw new ExportSnapshotException("Copy Files Map-Reduce Job failed");<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    }<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  }<a name="line.833"></a>
-<span class="sourceLineNo">834</span><a name="line.834"></a>
-<span class="sourceLineNo">835</span>  private void verifySnapshot(final Configuration baseConf,<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      final FileSystem fs, final Path rootDir, final Path snapshotDir) throws IOException {<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    // Update the conf with the current root dir, since may be a different cluster<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    Configuration conf = new Configuration(baseConf);<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    FSUtils.setRootDir(conf, rootDir);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    FSUtils.setFsDefault(conf, FSUtils.getRootDir(conf));<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    SnapshotDescription snapshotDesc = SnapshotDescriptionUtils.readSnapshotInfo(fs, snapshotDir);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    SnapshotReferenceUtil.verifySnapshot(conf, fs, snapshotDir, snapshotDesc);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>  }<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>   * Set path ownership.<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   */<a name="line.847"></a>
-<span class="sourceLineNo">848</span>  private void setOwner(final FileSystem fs, final Path path, final String user,<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      final String group, final boolean recursive) throws IOException {<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    if (user != null || group != null) {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.851"></a>
-<span class="sourceLineNo">852</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          setOwner(fs, child.getPath(), user, group, recursive);<a name="line.853"></a>
-<span class="sourceLineNo">854</span>        }<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      }<a name="line.855"></a>
-<span class="sourceLineNo">856</span>      fs.setOwner(path, user, group);<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    }<a name="line.857"></a>
-<span class="sourceLineNo">858</span>  }<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>  /**<a name="line.860"></a>
-<span class="sourceLineNo">861</span>   * Set path permission.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   */<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  private void setPermission(final FileSystem fs, final Path path, final short filesMode,<a name="line.863"></a>
-<span class="sourceLineNo">864</span>      final boolean recursive) throws IOException {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (filesMode &gt; 0) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      FsPermission perm = new FsPermission(filesMode);<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>          setPermission(fs, child.getPath(), filesMode, recursive);<a name="line.869"></a>
-<span class="sourceLineNo">870</span>        }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      fs.setPermission(path, perm);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>    }<a name="line.873"></a>
-<span class="sourceLineNo">874</span>  }<a name="line.874"></a>
-<span class="sourceLineNo">875</span><a name="line.875"></a>
-<span class="sourceLineNo">876</span>  private boolean verifyTarget = true;<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  private boolean verifyChecksum = true;<a name="line.877"></a>
-<span class="sourceLineNo">878</span>  private String snapshotName = null;<a name="line.878"></a>
-<span class="sourceLineNo">879</span>  private String targetName = null;<a name="line.879"></a>
-<span class="sourceLineNo">880</span>  private boolean overwrite = false;<a name="line.880"></a>
-<span class="sourceLineNo">881</span>  private String filesGroup = null;<a name="line.881"></a>
-<span class="sourceLineNo">882</span>  private String filesUser = null;<a name="line.882"></a>
-<span class="sourceLineNo">883</span>  private Path outputRoot = null;<a name="line.883"></a>
-<span class="sourceLineNo">884</span>  private Path inputRoot = null;<a name="line.884"></a>
-<span class="sourceLineNo">885</span>  private int bandwidthMB = Integer.MAX_VALUE;<a name="line.885"></a>
-<span class="sourceLineNo">886</span>  private int filesMode = 0;<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  private int mappers = 0;<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  @Override<a name="line.889"></a>
-<span class="sourceLineNo">890</span>  protected void processOptions(CommandLine cmd) {<a name="line.890"></a>
-<span class="sourceLineNo">891</span>    snapshotName = cmd.getOptionValue(Options.SNAPSHOT.getLongOpt(), snapshotName);<a name="line.891"></a>
-<span class="sourceLineNo">892</span>    targetName = cmd.getOptionValue(Options.TARGET_NAME.getLongOpt(), targetName);<a name="line.892"></a>
-<span class="sourceLineNo">893</span>    if (cmd.hasOption(Options.COPY_TO.getLongOpt())) {<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      outputRoot = new Path(cmd.getOptionValue(Options.COPY_TO.getLongOpt()));<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    if (cmd.hasOption(Options.COPY_FROM.getLongOpt())) {<a name="line.896"></a>
-<span class="sourceLineNo">897</span>      inputRoot = new Path(cmd.getOptionValue(Options.COPY_FROM.getLongOpt()));<a name="line.897"></a>
-<span class="sourceLineNo">898</span>    }<a name="line.898"></a>
-<span class="sourceLineNo">899</span>    mappers = getOptionAsInt(cmd, Options.MAPPERS.getLongOpt(), mappers);<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    filesUser = cmd.getOptionValue(Options.CHUSER.getLongOpt(), filesUser);<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    filesGroup = cmd.getOptionValue(Options.CHGROUP.getLongOpt(), filesGroup);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>    filesMode = getOptionAsInt(cmd, Options.CHMOD.getLongOpt(), filesMode);<a name="line.902"></a>
-<span class="sourceLineNo">903</span>    bandwidthMB = getOptionAsInt(cmd, Options.BANDWIDTH.getLongOpt(), bandwidthMB);<a name="line.903"></a>
-<span class="sourceLineNo">904</span>    overwrite = cmd.hasOption(Options.OVERWRITE.getLongOpt());<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    // And verifyChecksum and verifyTarget with values read from old args in processOldArgs(...).<a name="line.905"></a>
-<span class="sourceLineNo">906</span>    verifyChecksum = !cmd.hasOption(Options.NO_CHECKSUM_VERIFY.getLongOpt());<a name="line.906"></a>
-<span class="sourceLineNo">907</span>    verifyTarget = !cmd.hasOption(Options.NO_TARGET_VERIFY.getLongOpt());<a name="line.907"></a>
-<span class="sourceLineNo">908</span>  }<a name="line.908"></a>
-<span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>  /**<a name="line.910"></a>
-<span class="sourceLineNo">911</span>   * Execute the export snapshot by copying the snapshot metadata, hfiles and wals.<a name="line.911"></a>
-<span class="sourceLineNo">912</span>   * @return 0 on success, and != 0 upon failure.<a name="line.912"></a>
-<span class="sourceLineNo">913</span>   */<a name="line.913"></a>
-<span class="sourceLineNo">914</span>  @Override<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  public int doWork() throws IOException {<a name="line.915"></a>
-<span class="sourceLineNo">916</span>    Configuration conf = getConf();<a name="line.916"></a>
-<span class="sourceLineNo">917</span><a name="line.917"></a>
-<span class="sourceLineNo">918</span>    // Check user options<a name="line.918"></a>
-<span class="sourceLineNo">919</span>    if (snapshotName == null) {<a name="line.919"></a>
-<span class="sourceLineNo">920</span>      System.err.println("Snapshot name not provided.");<a name="line.920"></a>
-<span class="sourceLineNo">921</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      return 0;<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    }<a name="line.923"></a>
-<span class="sourceLineNo">924</span><a name="line.924"></a>
-<span class="sourceLineNo">925</span>    if (outputRoot == null) {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>      System.err.println("Destination file-system (--" + Options.COPY_TO.getLongOpt()<a name="line.926"></a>
-<span class="sourceLineNo">927</span>              + ") not provided.");<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      return 0;<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    }<a name="line.930"></a>
-<span class="sourceLineNo">931</span><a name="line.931"></a>
-<span class="sourceLineNo">932</span>    if (targetName == null) {<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      targetName = snapshotName;<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    }<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    if (inputRoot == null) {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>      inputRoot = FSUtils.getRootDir(conf);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    } else {<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      FSUtils.setRootDir(conf, inputRoot);<a name="line.938"></a>
-<span class="sourceLineNo">939</span>    }<a name="line.939"></a>
-<span class="sourceLineNo">940</span><a name="line.940"></a>
-<span class="sourceLineNo">941</span>    Configuration srcConf = HBaseConfiguration.createClusterConf(conf, null, CONF_SOURCE_PREFIX);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>    srcConf.setBoolean("fs." + inputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    FileSystem inputFs = FileSystem.get(inputRoot.toUri(), srcConf);<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    LOG.debug("inputFs=" + inputFs.getUri().toString() + " inputRoot=" + inputRoot);<a name="line.944"></a>
-<span class="sourceLineNo">945</span>    Configuration destConf = HBaseConfiguration.createClusterConf(conf, null, CONF_DEST_PREFIX);<a name="line.945"></a>
-<span class="sourceLineNo">946</span>    destConf.setBoolean("fs." + outputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.946"></a>
-<span class="sourceLineNo">947</span>    FileSystem outputFs = FileSystem.get(outputRoot.toUri(), destConf);<a name="line.947"></a>
-<span class="sourceLineNo">948</span>    LOG.debug("outputFs=" + outputFs.getUri().toString() + " outputRoot=" + outputRoot.toString());<a name="line.948"></a>
+<span class="sourceLineNo">829</span>      throw new ExportSnapshotException(job.getStatus().getFailureInfo());<a name="line.829"></a>
+<span class="sourceLineNo">830</span>    }<a name="line.830"></a>
+<span class="sourceLineNo">831</span>  }<a name="line.831"></a>
+<span class="sourceLineNo">832</span><a name="line.832"></a>
+<span class="sourceLineNo">833</span>  private void verifySnapshot(final Configuration baseConf,<a name="line.833"></a>
+<span class="sourceLineNo">834</span>      final FileSystem fs, final Path rootDir, final Path snapshotDir) throws IOException {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    // Update the conf with the current root dir, since may be a different cluster<a name="line.835"></a>
+<span class="sourceLineNo">836</span>    Configuration conf = new Configuration(baseConf);<a name="line.836"></a>
+<span class="sourceLineNo">837</span>    FSUtils.setRootDir(conf, rootDir);<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    FSUtils.setFsDefault(conf, FSUtils.getRootDir(conf));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>    SnapshotDescription snapshotDesc = SnapshotDescriptionUtils.readSnapshotInfo(fs, snapshotDir);<a name="line.839"></a>
+<span class="sourceLineNo">840</span>    SnapshotReferenceUtil.verifySnapshot(conf, fs, snapshotDir, snapshotDesc);<a name="line.840"></a>
+<span class="sourceLineNo">841</span>  }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>  /**<a name="line.843"></a>
+<span class="sourceLineNo">844</span>   * Set path ownership.<a name="line.844"></a>
+<span class="sourceLineNo">845</span>   */<a name="line.845"></a>
+<span class="sourceLineNo">846</span>  private void setOwner(final FileSystem fs, final Path path, final String user,<a name="line.846"></a>
+<span class="sourceLineNo">847</span>      final String group, final boolean recursive) throws IOException {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    if (user != null || group != null) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>          setOwner(fs, child.getPath(), user, group, recursive);<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span>      }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>      fs.setOwner(path, user, group);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>    }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>  }<a name="line.856"></a>
+<span class="sourceLineNo">857</span><a name="line.857"></a>
+<span class="sourceLineNo">858</span>  /**<a name="line.858"></a>
+<span class="sourceLineNo">859</span>   * Set path permission.<a name="line.859"></a>
+<span class="sourceLineNo">860</span>   */<a name="line.860"></a>
+<span class="sourceLineNo">861</span>  private void setPermission(final FileSystem fs, final Path path, final short filesMode,<a name="line.861"></a>
+<span class="sourceLineNo">862</span>      final boolean recursive) throws IOException {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>    if (filesMode &gt; 0) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>      FsPermission perm = new FsPermission(filesMode);<a name="line.864"></a>
+<span class="sourceLineNo">865</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>          setPermission(fs, child.getPath(), filesMode, recursive);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>        }<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>      fs.setPermission(path, perm);<a name="line.870"></a>
+<span class="sourceLineNo">871</span>    }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>  }<a name="line.872"></a>
+<span class="sourceLineNo">873</span><a name="line.873"></a>
+<span class="sourceLineNo">874</span>  private boolean verifyTarget = true;<a name="line.874"></a>
+<span class="sourceLineNo">875</span>  private boolean verifyChecksum = true;<a name="line.875"></a>
+<span class="sourceLineNo">876</span>  private String snapshotName = null;<a name="line.876"></a>
+<span class="sourceLineNo">877</span>  private String targetName = null;<a name="line.877"></a>
+<span class="sourceLineNo">878</span>  private boolean overwrite = false;<a name="line.878"></a>
+<span class="sourceLineNo">879</span>  private String filesGroup = null;<a name="line.879"></a>
+<span class="sourceLineNo">880</span>  private String filesUser = null;<a name="line.880"></a>
+<span class="sourceLineNo">881</span>  private Path outputRoot = null;<a name="line.881"></a>
+<span class="sourceLineNo">882</span>  private Path inputRoot = null;<a name="line.882"></a>
+<span class="sourceLineNo">883</span>  private int bandwidthMB = Integer.MAX_VALUE;<a name="line.883"></a>
+<span class="sourceLineNo">884</span>  private int filesMode = 0;<a name="line.884"></a>
+<span class="sourceLineNo">885</span>  private int mappers = 0;<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>  @Override<a name="line.887"></a>
+<span class="sourceLineNo">888</span>  protected void processOptions(CommandLine cmd) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    snapshotName = cmd.getOptionValue(Options.SNAPSHOT.getLongOpt(), snapshotName);<a name="line.889"></a>
+<span class="sourceLineNo">890</span>    targetName = cmd.getOptionValue(Options.TARGET_NAME.getLongOpt(), targetName);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>    if (cmd.hasOption(Options.COPY_TO.getLongOpt())) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>      outputRoot = new Path(cmd.getOptionValue(Options.COPY_TO.getLongOpt()));<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    }<a name="line.893"></a>
+<span class="sourceLineNo">894</span>    if (cmd.hasOption(Options.COPY_FROM.getLongOpt())) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>      inputRoot = new Path(cmd.getOptionValue(Options.COPY_FROM.getLongOpt()));<a name="line.895"></a>
+<span class="sourceLineNo">896</span>    }<a name="line.896"></a>
+<span class="sourceLineNo">897</span>    mappers = getOptionAsInt(cmd, Options.MAPPERS.getLongOpt(), mappers);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    filesUser = cmd.getOptionValue(Options.CHUSER.getLongOpt(), filesUser);<a name="line.898"></a>
+<span class="sourceLineNo">899</span>    filesGroup = cmd.getOptionValue(Options.CHGROUP.getLongOpt(), filesGroup);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>    filesMode = getOptionAsInt(cmd, Options.CHMOD.getLongOpt(), filesMode);<a name="line.900"></a>
+<span class="sourceLineNo">901</span>    bandwidthMB = getOptionAsInt(cmd, Options.BANDWIDTH.getLongOpt(), bandwidthMB);<a name="line.901"></a>
+<span class="sourceLineNo">902</span>    overwrite = cmd.hasOption(Options.OVERWRITE.getLongOpt());<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    // And verifyChecksum and verifyTarget with values read from old args in processOldArgs(...).<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    verifyChecksum = !cmd.hasOption(Options.NO_CHECKSUM_VERIFY.getLongOpt());<a name="line.904"></a>
+<span class="sourceLineNo">905</span>    verifyTarget = !cmd.hasOption(Options.NO_TARGET_VERIFY.getLongOpt());<a name="line.905"></a>
+<span class="sourceLineNo">906</span>  }<a name="line.906"></a>
+<span class="sourceLineNo">907</span><a name="line.907"></a>
+<span class="sourceLineNo">908</span>  /**<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   * Execute the export snapshot by copying the snapshot metadata, hfiles and wals.<a name="line.909"></a>
+<span class="sourceLineNo">910</span>   * @return 0 on success, and != 0 upon failure.<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>  @Override<a name="line.912"></a>
+<span class="sourceLineNo">913</span>  public int doWork() throws IOException {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    Configuration conf = getConf();<a name="line.914"></a>
+<span class="sourceLineNo">915</span><a name="line.915"></a>
+<span class="sourceLineNo">916</span>    // Check user options<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    if (snapshotName == null) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>      System.err.println("Snapshot name not provided.");<a name="line.918"></a>
+<span class="sourceLineNo">919</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.919"></a>
+<span class="sourceLineNo">920</span>      return 0;<a name="line.920"></a>
+<span class="sourceLineNo">921</span>    }<a name="line.921"></a>
+<span class="sourceLineNo">922</span><a name="line.922"></a>
+<span class="sourceLineNo">923</span>    if (outputRoot == null) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>      System.err.println("Destination file-system (--" + Options.COPY_TO.getLongOpt()<a name="line.924"></a>
+<span class="sourceLineNo">925</span>              + ") not provided.");<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      return 0;<a name="line.927"></a>
+<span class="sourceLineNo">928</span>    }<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>    if (targetName == null) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      targetName = snapshotName;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    if (inputRoot == null) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      inputRoot = FSUtils.getRootDir(conf);<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    } else {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>      FSUtils.setRootDir(conf, inputRoot);<a name="line.936"></a>
+<span class="sourceLineNo">937</span>    }<a name="line.937"></a>
+<span class="sourceLineNo">938</span><a name="line.938"></a>
+<span class="sourceLineNo">939</span>    Configuration srcConf = HBaseConfiguration.createClusterConf(conf, null, CONF_SOURCE_PREFIX);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    srcConf.setBoolean("fs." + inputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    FileSystem inputFs = FileSystem.get(inputRoot.toUri(), srcConf);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>    LOG.debug("inputFs=" + inputFs.getUri().toString() + " inputRoot=" + inputRoot);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>    Configuration destConf = HBaseConfiguration.createClusterConf(conf, null, CONF_DEST_PREFIX);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>    destConf.setBoolean("fs." + outputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>    FileSystem outputFs = FileSystem.get(outputRoot.toUri(), destConf);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    LOG.debug("outputFs=" + outputFs.getUri().toString() + " outputRoot=" + outputRoot.toString());<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>    boolean skipTmp = conf.getBoolean(CONF_SKIP_TMP, false);<a name="line.948"></a>
 <span class="sourceLineNo">949</span><a name="line.949"></a>
-<span class="sourceLineNo">950</span>    boolean skipTmp = conf.getBoolean(CONF_SKIP_TMP, false);<a name="line.950"></a>
-<span class="sourceLineNo">951</span><a name="line.951"></a>
-<span class="sourceLineNo">952</span>    Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshotName, inputRoot);<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    Path snapshotTmpDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(targetName, outputRoot);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    Path outputSnapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(targetName, outputRoot);<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    Path initialOutputSnapshotDir = skipTmp ? outputSnapshotDir : snapshotTmpDir;<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>    // Find the necessary directory which need to change owner and group<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    Path needSetOwnerDir = SnapshotDescriptionUtils.getSnapshotRootDir(outputRoot);<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    if (outputFs.exists(needSetOwnerDir)) {<a name="line.959"></a>
-<span class="sourceLineNo">960</span>      if (skipTmp) {<a name="line.960"></a>
-<span class="sourceLineNo">961</span>        needSetOwnerDir = outputSnapshotDir;<a name="line.961"></a>
-<span class="sourceLineNo">962</span>      } else {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>        needSetOwnerDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(outputRoot);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>        if (outputFs.exists(needSetOwnerDir)) {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>          needSetOwnerDir = snapshotTmpDir;<a name="line.965"></a>
-<span class="sourceLineNo">966</span>        }<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
-<span class="sourceLineNo">969</span><a name="line.969"></a>
-<span class="sourceLineNo">970</span>    // Check if the snapshot already exists<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (outputFs.exists(outputSnapshotDir)) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      if (overwrite) {<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        if (!outputFs.delete(outputSnapshotDir, true)) {<a name="line.973"></a>
-<span class="sourceLineNo">974</span>          System.err.println("Unable to remove existing snapshot directory: " + outputSnapshotDir);<a name="line.974"></a>
-<span class="sourceLineNo">975</span>          return 1;<a name="line.975"></a>
-<span class="sourceLineNo">976</span>        }<a name="line.976"></a>
-<span class="sourceLineNo">977</span>      } else {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>        System.err.println("The snapshot '" + targetName +<a name="line.978"></a>
-<span class="sourceLineNo">979</span>          "' already exists in the destination: " + outputSnapshotDir);<a name="line.979"></a>
-<span class="sourceLineNo">980</span>        return 1;<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      }<a name="line.981"></a>
-<span class="sourceLineNo">982</span>    }<a name="line.982"></a>
-<span class="sourceLineNo">983</span><a name="line.983"></a>
-<span class="sourceLineNo">984</span>    if (!skipTmp) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      // Check if the snapshot already in-progress<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      if (outputFs.exists(snapshotTmpDir)) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>        if (overwrite) {<a name="line.987"></a>
-<span class="sourceLineNo">988</span>          if (!outputFs.delete(snapshotTmpDir, true)) {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            System.err.println("Unable to remove existing snapshot tmp directory: "+snapshotTmpDir);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>            return 1;<a name="line.990"></a>
-<span class="sourceLineNo">991</span>          }<a name="line.991"></a>
-<span class="sourceLineNo">992</span>        } else {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>          System.err.println("A snapshot with the same name '"+ targetName +"' may be in-progress");<a name="line.993"></a>
-<span class="sourceLineNo">994</span>          System.err.println("Please check "+snapshotTmpDir+". If the snapshot has completed, ");<a name="line.994"></a>
-<span class="sourceLineNo">995</span>          System.err.println("consider removing "+snapshotTmpDir+" by using the -overwrite option");<a name="line.995"></a>
-<span class="sourceLineNo">996</span>          return 1;<a name="line.996"></a>
-<span class="sourceLineNo">997</span>        }<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      }<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span><a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // Step 1 - Copy fs1:/.snapshot/&lt;snapshot&gt; to  fs2:/.snapshot/.tmp/&lt;snapshot&gt;<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // The snapshot references must be copied before the hfiles otherwise the cleaner<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    // will remove them because they are unreferenced.<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      LOG.info("Copy Snapshot Manifest");<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      FileUtil.copy(inputFs, snapshotDir, outputFs, initialOutputSnapshotDir, false, false, conf);<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    } catch (IOException e) {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      throw new ExportSnapshotException("Failed to copy the snapshot directory: from=" +<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>        snapshotDir + " to=" + initialOutputSnapshotDir, e);<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    } finally {<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      if (filesUser != null || filesGroup != null) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        LOG.warn((filesUser == null ? "" : "Change the owner of " + needSetOwnerDir + " to "<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>            + filesUser)<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>            + (filesGroup == null ? "" : ", Change the group of " + needSetOwnerDir + " to "<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>            + filesGroup));<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        setOwner(outputFs, needSetOwnerDir, filesUser, filesGroup, true);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>      }<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      if (filesMode &gt; 0) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>        LOG.warn("Change the permission of " + needSetOwnerDir + " to " + filesMode);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        setPermission(outputFs, needSetOwnerDir, (short)filesMode, true);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    }<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span><a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    // Write a new .snapshotinfo if the target name is different from the source name<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    if (!targetName.equals(snapshotName)) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      SnapshotDescription snapshotDesc =<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>        SnapshotDescriptionUtils.readSnapshotInfo(inputFs, snapshotDir)<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>          .toBuilder()<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          .setName(targetName)<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>          .build();<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>      SnapshotDescriptionUtils.writeSnapshotInfo(snapshotDesc, initialOutputSnapshotDir, outputFs);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>      if (filesUser != null || filesGroup != null) {<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>        outputFs.setOwner(new Path(initialOutputSnapshotDir,<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), filesUser, filesGroup);<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>      }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>      if (filesMode &gt; 0) {<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>        outputFs.setPermission(new Path(initialOutputSnapshotDir,<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), new FsPermission((short)filesMode));<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>      }<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>    // Step 2 - Start MR Job to copy files<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    // The snapshot references must be copied before the files otherwise the files gets removed<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>    // by the HFileArchiver, since they have no references.<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>    try {<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>      runCopyJob(inputRoot, outputRoot, snapshotName, snapshotDir, verifyChecksum,<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>                 filesUser, filesGroup, filesMode, mappers, bandwidthMB);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span><a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      LOG.info("Finalize the Snapshot Export");<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>      if (!skipTmp) {<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>        // Step 3 - Rename fs2:/.snapshot/.tmp/&lt;snapshot&gt; fs2:/.snapshot/&lt;snapshot&gt;<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        if (!outputFs.rename(snapshotTmpDir, outputSnapshotDir)) {<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>          throw new ExportSnapshotException("Unable to rename snapshot directory from=" +<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>            snapshotTmpDir + " to=" + outputSnapshotDir);<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        }<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>      }<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span><a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>      // Step 4 - Verify snapshot integrity<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>      if (verifyTarget) {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>        LOG.info("Verify snapshot integrity");<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>        verifySnapshot(destConf, outputFs, outputRoot, outputSnapshotDir);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>      }<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span><a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>      LOG.info("Export Completed: " + targetName);<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>      return 0;<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>    } catch (Exception e) {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>      LOG.error("Snapshot export failed", e);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>      if (!skipTmp) {<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>        outputFs.delete(snapshotTmpDir, true);<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      }<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>      outputFs.delete(outputSnapshotDir, true);<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      return 1;<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    } finally {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      IOUtils.closeStream(inputFs);<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>      IOUtils.closeStream(outputFs);<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>    }<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>  @Override<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  protected void printUsage() {<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    super.printUsage();<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    System.out.println("\n"<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>        + "Examples:\n"<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        + "  hbase snapshot export \\\n"<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        + "    --snapshot MySnapshot --copy-to hdfs://srv2:8082/hbase \\\n"<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>        + "    --chuser MyUser --chgroup MyGroup --chmod 700 --mappers 16\n"<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        + "\n"<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>        + "  hbase snapshot export \\\n"<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>        + "    --snapshot MySnapshot --copy-from hdfs://srv2:8082/hbase \\\n"<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        + "    --copy-to hdfs://srv1:50070/hbase");<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>  @Override protected void addOptions() {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    addRequiredOption(Options.SNAPSHOT);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    addOption(Options.COPY_TO);<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>    addOption(Options.COPY_FROM);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    addOption(Options.TARGET_NAME);<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    addOption(Options.NO_CHECKSUM_VERIFY);<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>    addOption(Options.NO_TARGET_VERIFY);<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>    addOption(Options.OVERWRITE);<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    addOption(Options.CHUSER);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    addOption(Options.CHGROUP);<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    addOption(Options.CHMOD);<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    addOption(Options.MAPPERS);<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>    addOption(Options.BANDWIDTH);<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  }<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span><a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>  public static void main(String[] args) {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    new ExportSnapshot().doStaticMain(args);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>  }<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>}<a name="line.1111"></a>
+<span class="sourceLineNo">950</span>    Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshotName, inputRoot);<a name="line.950"></a>
+<span class="sourceLineNo">951</span>    Path snapshotTmpDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(targetName, outputRoot);<a name="line.951"></a>
+<span class="sourceLineNo">952</span>    Path outputSnapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(targetName, outputRoot);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>    Path initialOutputSnapshotDir = skipTmp ? outputSnapshotDir : snapshotTmpDir;<a name="line.953"></a>
+<span class="sourceLineNo">954</span><a name="line.954"></a>
+<span class="sourceLineNo">955</span>    // Find the necessary directory which need to change owner and group<a name="line.955"></a>
+<span class="sourceLineNo">956</span>    Path needSetOwnerDir = SnapshotDescriptionUtils.getSnapshotRootDir(outputRoot);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    if (outputFs.exists(needSetOwnerDir)) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>      if (skipTmp) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        needSetOwnerDir = outputSnapshotDir;<a name="line.959"></a>
+<span class="sourceLineNo">960</span>      } else {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        needSetOwnerDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(outputRoot);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>        if (outputFs.exists(needSetOwnerDir)) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>          needSetOwnerDir = snapshotTmpDir;<a name="line.963"></a>
+<span class="sourceLineNo">964</span>        }<a name="line.964"></a>
+<span class="sourceLineNo">965</span>      }<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    }<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>    // Check if the snapshot already exists<a name="line.968"></a>
+<span class="sourceLineNo">969</span>    if (outputFs.exists(outputSnapshotDir)) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>      if (overwrite) {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>        if (!outputFs.delete(outputSnapshotDir, true)) {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>          System.err.println("Unable to remove existing snapshot directory: " + outputSnapshotDir);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>          return 1;<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>      } else {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>        System.err.println("The snapshot '" + targetName +<a name="line.976"></a>
+<span class="sourceLineNo">977</span>          "' already exists in the destination: " + outputSnapshotDir);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        return 1;<a name="line.978"></a>
+<span class="sourceLineNo">979</span>      }<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    if (!skipTmp) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>      // Check if the snapshot already in-progress<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      if (outputFs.exists(snapshotTmpDir)) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>        if (overwrite) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>          if (!outputFs.delete(snapshotTmpDir, true)) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>            System.err.println("Unable to remove existing snapshot tmp directory: "+snapshotTmpDir);<a name="line.987"></a>
+<span class="sourceLineNo">988</span>            return 1;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>          }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>        } else {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>          System.err.println("A snapshot with the same name '"+ targetName +"' may be in-progress");<a name="line.991"></a>
+<span class="sourceLineNo">992</span>          System.err.println("Please check "+snapshotTmpDir+". If the snapshot has completed, ");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>          System.err.println("consider removing "+snapshotTmpDir+" by using the -overwrite option");<a name="line.993"></a>
+<span class="sourceLineNo">994</span>          return 1;<a name="line.994"></a>
+<span class="sourceLineNo">995</span>        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>      }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    }<a name="line.997"></a>
+<span class="sourceLineNo">998</span><a name="line.998"></a>
+<span class="sourceLineNo">999</span>    // Step 1 - Copy fs1:/.snapshot/&lt;snapshot&gt; to  fs2:/.snapshot/.tmp/&lt;snapshot&gt;<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    // The snapshot references must be copied before the hfiles otherwise the cleaner<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    // will remove them because they are unreferenced.<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>    try {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>      LOG.info("Copy Snapshot Manifest");<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      FileUtil.copy(inputFs, snapshotDir, outputFs, initialOutputSnapshotDir, false, false, conf);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    } catch (IOException e) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      throw new ExportSnapshotException("Failed to copy the snapshot directory: from=" +<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        snapshotDir + " to=" + initialOutputSnapshotDir, e);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    } finally {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      if (filesUser != null || filesGroup != null) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>        LOG.warn((filesUser == null ? "" : "Change the owner of " + needSetOwnerDir + " to "<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>            + filesUser)<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>            + (filesGroup == null ? "" : ", Change the group of " + needSetOwnerDir + " to "<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>            + filesGroup));<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        setOwner(outputFs, needSetOwnerDir, filesUser, filesGroup, true);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>      }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      if (filesMode &gt; 0) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>        LOG.warn("Change the permission of " + needSetOwnerDir + " to " + filesMode);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        setPermission(outputFs, needSetOwnerDir, (short)filesMode, true);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>      }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    }<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span><a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>    // Write a new .snapshotinfo if the target name is different from the source name<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>    if (!targetName.equals(snapshotName)) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>      SnapshotDescription snapshotDesc =<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>        SnapshotDescriptionUtils.readSnapshotInfo(inputFs, snapshotDir)<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>          .toBuilder()<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>          .setName(targetName)<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>          .build();<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      SnapshotDescriptionUtils.writeSnapshotInfo(snapshotDesc, initialOutputSnapshotDir, outputFs);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      if (filesUser != null || filesGroup != null) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        outputFs.setOwner(new Path(initialOutputSnapshotDir,<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), filesUser, filesGroup);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>      }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>      if (filesMode &gt; 0) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        outputFs.setPermission(new Path(initialOutputSnapshotDir,<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), new FsPermission((short)filesMode));<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>      }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>    }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>    // Step 2 - Start MR Job to copy files<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>    // The snapshot references must be copied before the files otherwise the files gets removed<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>    // by the HFileArchiver, since they have no references.<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>    try {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>      runCopyJob(inputRoot, outputRoot, snapshotName, snapshotDir, verifyChecksum,<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                 filesUser, filesGroup, filesMode, mappers, bandwidthMB);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span><a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>      LOG.info("Finalize the Snapshot Export");<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      if (!skipTmp) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        // Step 3 - Rename fs2:/.snapshot/.tmp/&lt;snapshot&gt; fs2:/.snapshot/&lt;snapshot&gt;<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        if (!outputFs.rename(snapshotTmpDir, outputSnapshotDir)) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>          throw new ExportSnapshotException("Unable to rename snapshot directory from=" +<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>            snapshotTmpDir + " to=" + outputSnapshotDir);<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span><a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>      // Step 4 - Verify snapshot integrity<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      if (verifyTarget) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        LOG.info("Verify snapshot integrity");<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        verifySnapshot(destConf, outputFs, outputRoot, outputSnapshotDir);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>      }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      LOG.info("Export Completed: " + targetName);<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      return 0;<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>    } catch (Exception e) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>      LOG.error("Snapshot export failed", e);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      if (!skipTmp) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        outputFs.delete(snapshotTmpDir, true);<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      }<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      outputFs.delete(outputSnapshotDir, true);<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      return 1;<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>    } finally {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      IOUtils.closeStream(inputFs);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>      IOUtils.closeStream(outputFs);<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    }<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  @Override<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>  protected void printUsage() {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    super.printUsage();<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    System.out.println("\n"<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        + "Examples:\n"<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>        + "  hbase snapshot export \\\n"<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>        + "    --snapshot MySnapshot --copy-to hdfs://srv2:8082/hbase \\\n"<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        + "    --chuser MyUser --chgroup MyGroup --chmod 700 --mappers 16\n"<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>        + "\n"<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>        + "  hbase snapshot export \\\n"<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>        + "    --snapshot MySnapshot --copy-from hdfs://srv2:8082/hbase \\\n"<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        + "    --copy-to hdfs://srv1:50070/hbase");<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>  @Override protected void addOptions() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    addRequiredOption(Options.SNAPSHOT);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    addOption(Options.COPY_TO);<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>    addOption(Options.COPY_FROM);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>    addOption(Options.TARGET_NAME);<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>    addOption(Options.NO_CHECKSUM_VERIFY);<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>    addOption(Options.NO_TARGET_VERIFY);<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>    addOption(Options.OVERWRITE);<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>    addOption(Options.CHUSER);<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>    addOption(Options.CHGROUP);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>    addOption(Options.CHMOD);<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>    addOption(Options.MAPPERS);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    addOption(Options.BANDWIDTH);<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>  }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span><a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>  public static void main(String[] args) {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    new ExportSnapshot().doStaticMain(args);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  }<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>}<a name="line.1109"></a>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-shaded-check-invariants/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependency-convergence.html b/hbase-shaded-check-invariants/dependency-convergence.html
index baeabb4..2ce7854 100644
--- a/hbase-shaded-check-invariants/dependency-convergence.html
+++ b/hbase-shaded-check-invariants/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
 <td>304</td></tr>
 <tr class="b">
 <th>Number of unique artifacts (NOA):</th>
-<td>329</td></tr>
+<td>330</td></tr>
 <tr class="a">
 <th>Number of version-conflicting artifacts (NOC):</th>
 <td>17</td></tr>
@@ -423,7 +423,7 @@
 <li>org.apache.hbase:hbase-endpoint:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-
 media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-examples:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-
 media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-external-blockcache:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.me
 dia:jersey-media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
-<li>org.apache.hbase:hbase-it:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-
 jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
+<li>org.apache.hbase:hbase-it:jar:3.0.0-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />|&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />\-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;\-&#16
 0;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br /></li><br />
 <li>org.apache.hbase:hbase-mapreduce:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey
 -media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-rest:jar:3.0.0-SNAPSHOT<br />\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-rsgroup:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-m
 edia-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
@@ -615,7 +615,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-shaded-check-invariants/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependency-info.html b/hbase-shaded-check-invariants/dependency-info.html
index 65715bb..0529711 100644
--- a/hbase-shaded-check-invariants/dependency-info.html
+++ b/hbase-shaded-check-invariants/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-shaded-check-invariants/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependency-management.html b/hbase-shaded-check-invariants/dependency-management.html
index 26d361a..30cea02 100644
--- a/hbase-shaded-check-invariants/dependency-management.html
+++ b/hbase-shaded-check-invariants/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -585,30 +585,36 @@
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
 <tr class="b">
+<td>org.glassfish.web</td>
+<td><a class="externalLink" href="http://jsp.java.net">javax.servlet.jsp</a></td>
+<td>2.3.2</td>
+<td>jar</td>
+<td><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
+<tr class="a">
 <td>org.jamon</td>
 <td><a class="externalLink" href="http://www.jamon.org/jamon-java-parent/jamon-runtime/">jamon-runtime</a></td>
 <td>2.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/2.0">Mozilla Public License Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby</td>
 <td><a class="externalLink" href="https://github.com/jruby/jruby/jruby-artifacts/jruby-complete">jruby-complete</a></td>
 <td>9.1.10.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.gnu.org/licenses/gpl-2.0-standalone.html">GPL 2</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1-standalone.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">EPL</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
 <td>1.7.24</td>
@@ -760,7 +766,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-shaded-check-invariants/index.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/index.html b/hbase-shaded-check-invariants/index.html
index 73c1885..1237555 100644
--- a/hbase-shaded-check-invariants/index.html
+++ b/hbase-shaded-check-invariants/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -122,7 +122,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-shaded-check-invariants/integration.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/integration.html b/hbase-shaded-check-invariants/integration.html
index a37e2a1..e87f56a 100644
--- a/hbase-shaded-check-invariants/integration.html
+++ b/hbase-shaded-check-invariants/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-shaded-check-invariants/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/issue-tracking.html b/hbase-shaded-check-invariants/issue-tracking.html
index a03f421..d107554 100644
--- a/hbase-shaded-check-invariants/issue-tracking.html
+++ b/hbase-shaded-check-invariants/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-shaded-check-invariants/license.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/license.html b/hbase-shaded-check-invariants/license.html
index 4928324..2d0ebfb 100644
--- a/hbase-shaded-check-invariants/license.html
+++ b/hbase-shaded-check-invariants/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-shaded-check-invariants/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/mail-lists.html b/hbase-shaded-check-invariants/mail-lists.html
index 6c99269..5de2b24 100644
--- a/hbase-shaded-check-invariants/mail-lists.html
+++ b/hbase-shaded-check-invariants/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-shaded-check-invariants/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/plugin-management.html b/hbase-shaded-check-invariants/plugin-management.html
index 78c74a4..cf6eaa2 100644
--- a/hbase-shaded-check-invariants/plugin-management.html
+++ b/hbase-shaded-check-invariants/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-shaded-check-invariants/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/plugins.html b/hbase-shaded-check-invariants/plugins.html
index d5dd804..7dca594 100644
--- a/hbase-shaded-check-invariants/plugins.html
+++ b/hbase-shaded-check-invariants/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -218,7 +218,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-shaded-check-invariants/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/project-info.html b/hbase-shaded-check-invariants/project-info.html
index 63aab7b..ad2a7a2 100644
--- a/hbase-shaded-check-invariants/project-info.html
+++ b/hbase-shaded-check-invariants/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -170,7 +170,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-shaded-check-invariants/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/project-reports.html b/hbase-shaded-check-invariants/project-reports.html
index 85c87e2..0ca4777 100644
--- a/hbase-shaded-check-invariants/project-reports.html
+++ b/hbase-shaded-check-invariants/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-shaded-check-invariants/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/project-summary.html b/hbase-shaded-check-invariants/project-summary.html
index 730a696..785707b 100644
--- a/hbase-shaded-check-invariants/project-summary.html
+++ b/hbase-shaded-check-invariants/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-shaded-check-invariants/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/source-repository.html b/hbase-shaded-check-invariants/source-repository.html
index 3546655..5274f91 100644
--- a/hbase-shaded-check-invariants/source-repository.html
+++ b/hbase-shaded-check-invariants/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-shaded-check-invariants/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/team-list.html b/hbase-shaded-check-invariants/team-list.html
index 03c4651..d148c19 100644
--- a/hbase-shaded-check-invariants/team-list.html
+++ b/hbase-shaded-check-invariants/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -529,7 +529,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index 9f5d9f1..51706c1 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -438,7 +438,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: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index af2e160..52eb5cd 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -296,7 +296,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index 641e7e9..f2d5840 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -293,7 +293,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index 5c2e62f..818e35b 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -496,7 +496,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index 4afebc0..34100cc 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -346,7 +346,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/metrics.html
----------------------------------------------------------------------
diff --git a/metrics.html b/metrics.html
index 727b324..f137754 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) Metrics
@@ -464,7 +464,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: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/old_news.html
----------------------------------------------------------------------
diff --git a/old_news.html b/old_news.html
index ddfcff8..fce1fd5 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Old Apache HBase (TM) News
@@ -419,7 +419,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: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index 9c171f8..e5bc3b5 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -441,7 +441,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index 262e630..d4de8a7 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -380,7 +380,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/poweredbyhbase.html
----------------------------------------------------------------------
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 62a4ee2..40bfd95 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -774,7 +774,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: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index 1429bd3..50c4ef0 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -340,7 +340,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index 8597ce2..4300745 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -310,7 +310,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index 8ae5eef..c9c26ea 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -336,7 +336,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/pseudo-distributed.html
----------------------------------------------------------------------
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index 5b628c1..b4bb282 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
 Running Apache HBase (TM) in pseudo-distributed mode
@@ -313,7 +313,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: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/replication.html
----------------------------------------------------------------------
diff --git a/replication.html b/replication.html
index 67e12dd..7f58e93 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Apache HBase (TM) Replication
@@ -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: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/resources.html
----------------------------------------------------------------------
diff --git a/resources.html b/resources.html
index a12ec48..5ca048a 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -336,7 +336,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: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index 12b7fa7..598472f 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -304,7 +304,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/sponsors.html
----------------------------------------------------------------------
diff --git a/sponsors.html b/sponsors.html
index 6abc79b..25dcde2 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -338,7 +338,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: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/supportingprojects.html
----------------------------------------------------------------------
diff --git a/supportingprojects.html b/supportingprojects.html
index 547921c..ec7dee6 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -525,7 +525,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: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index 6b58b94..e4394fb 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -699,7 +699,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/testdevapidocs/org/apache/hadoop/hbase/tool/TestCanaryTool.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/tool/TestCanaryTool.html b/testdevapidocs/org/apache/hadoop/hbase/tool/TestCanaryTool.html
index 14f2bd0..8888dc3 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/tool/TestCanaryTool.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/tool/TestCanaryTool.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.55">TestCanaryTool</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.56">TestCanaryTool</a>
 extends <a href="http://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>
@@ -249,7 +249,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testingUtility</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.57">testingUtility</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.58">testingUtility</a></pre>
 </li>
 </ul>
 <a name="FAMILY">
@@ -258,7 +258,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>FAMILY</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.58">FAMILY</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.59">FAMILY</a></pre>
 </li>
 </ul>
 <a name="COLUMN">
@@ -267,7 +267,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>COLUMN</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.59">COLUMN</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.60">COLUMN</a></pre>
 </li>
 </ul>
 <a name="name">
@@ -276,7 +276,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>name</h4>
-<pre>public&nbsp;org.junit.rules.TestName <a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.62">name</a></pre>
+<pre>public&nbsp;org.junit.rules.TestName <a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.63">name</a></pre>
 </li>
 </ul>
 <a name="mockAppender">
@@ -286,7 +286,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <li class="blockList">
 <h4>mockAppender</h4>
 <pre>@Mock
-org.apache.log4j.Appender <a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.78">mockAppender</a></pre>
+org.apache.log4j.Appender <a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.79">mockAppender</a></pre>
 </li>
 </ul>
 </li>
@@ -303,7 +303,7 @@ org.apache.log4j.Appender <a href="../../../../../src-html/org/apache/hadoop/hba
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestCanaryTool</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.55">TestCanaryTool</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.56">TestCanaryTool</a>()</pre>
 </li>
 </ul>
 </li>
@@ -320,7 +320,7 @@ org.apache.log4j.Appender <a href="../../../../../src-html/org/apache/hadoop/hba
 <ul class="blockList">
 <li class="blockList">
 <h4>setUp</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.65">setUp</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.66">setUp</a>()
            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -334,7 +334,7 @@ org.apache.log4j.Appender <a href="../../../../../src-html/org/apache/hadoop/hba
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.72">tearDown</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.73">tearDown</a>()
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -348,7 +348,7 @@ org.apache.log4j.Appender <a href="../../../../../src-html/org/apache/hadoop/hba
 <ul class="blockList">
 <li class="blockList">
 <h4>testBasicZookeeperCanaryWorks</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.81">testBasicZookeeperCanaryWorks</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.82">testBasicZookeeperCanaryWorks</a>()
                                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -362,7 +362,7 @@ org.apache.log4j.Appender <a href="../../../../../src-html/org/apache/hadoop/hba
 <ul class="blockList">
 <li class="blockList">
 <h4>testBasicCanaryWorks</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.99">testBasicCanaryWorks</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.100">testBasicCanaryWorks</a>()
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -376,7 +376,7 @@ org.apache.log4j.Appender <a href="../../../../../src-html/org/apache/hadoop/hba
 <ul class="blockList">
 <li class="blockList">
 <h4>testReadTableTimeouts</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.120">testReadTableTimeouts</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.122">testReadTableTimeouts</a>()
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -390,7 +390,7 @@ org.apache.log4j.Appender <a href="../../../../../src-html/org/apache/hadoop/hba
 <ul class="blockList">
 <li class="blockList">
 <h4>testWriteTableTimeout</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.163">testWriteTableTimeout</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.165">testWriteTableTimeout</a>()
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -404,7 +404,7 @@ org.apache.log4j.Appender <a href="../../../../../src-html/org/apache/hadoop/hba
 <ul class="blockList">
 <li class="blockList">
 <h4>testRegionserverNoRegions</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.181">testRegionserverNoRegions</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.183">testRegionserverNoRegions</a>()
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -418,7 +418,7 @@ org.apache.log4j.Appender <a href="../../../../../src-html/org/apache/hadoop/hba
 <ul class="blockList">
 <li class="blockList">
 <h4>testRegionserverWithRegions</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.193">testRegionserverWithRegions</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.195">testRegionserverWithRegions</a>()
                                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -432,7 +432,7 @@ org.apache.log4j.Appender <a href="../../../../../src-html/org/apache/hadoop/hba
 <ul class="blockList">
 <li class="blockList">
 <h4>testRawScanConfig</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.206">testRawScanConfig</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.208">testRawScanConfig</a>()
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -446,7 +446,7 @@ org.apache.log4j.Appender <a href="../../../../../src-html/org/apache/hadoop/hba
 <ul class="blockListLast">
 <li class="blockList">
 <h4>runRegionserverCanary</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.228">runRegionserverCanary</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/tool/TestCanaryTool.html#line.232">runRegionserverCanary</a>()
                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportSnapshotInputFormat.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportSnapshotInputFormat.html b/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportSnapshotInputFormat.html
index a73c866..dd2d739 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportSnapshotInputFormat.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportSnapshotInputFormat.html
@@ -834,289 +834,287 @@
 <span class="sourceLineNo">826</span><a name="line.826"></a>
 <span class="sourceLineNo">827</span>    // Run the MR Job<a name="line.827"></a>
 <span class="sourceLineNo">828</span>    if (!job.waitForCompletion(true)) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>      // TODO: Replace the fixed string with job.getStatus().getFailureInfo()<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      // when it will be available on all the supported versions.<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      throw new ExportSnapshotException("Copy Files Map-Reduce Job failed");<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    }<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  }<a name="line.833"></a>
-<span class="sourceLineNo">834</span><a name="line.834"></a>
-<span class="sourceLineNo">835</span>  private void verifySnapshot(final Configuration baseConf,<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      final FileSystem fs, final Path rootDir, final Path snapshotDir) throws IOException {<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    // Update the conf with the current root dir, since may be a different cluster<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    Configuration conf = new Configuration(baseConf);<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    FSUtils.setRootDir(conf, rootDir);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    FSUtils.setFsDefault(conf, FSUtils.getRootDir(conf));<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    SnapshotDescription snapshotDesc = SnapshotDescriptionUtils.readSnapshotInfo(fs, snapshotDir);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    SnapshotReferenceUtil.verifySnapshot(conf, fs, snapshotDir, snapshotDesc);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>  }<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>   * Set path ownership.<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   */<a name="line.847"></a>
-<span class="sourceLineNo">848</span>  private void setOwner(final FileSystem fs, final Path path, final String user,<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      final String group, final boolean recursive) throws IOException {<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    if (user != null || group != null) {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.851"></a>
-<span class="sourceLineNo">852</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          setOwner(fs, child.getPath(), user, group, recursive);<a name="line.853"></a>
-<span class="sourceLineNo">854</span>        }<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      }<a name="line.855"></a>
-<span class="sourceLineNo">856</span>      fs.setOwner(path, user, group);<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    }<a name="line.857"></a>
-<span class="sourceLineNo">858</span>  }<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>  /**<a name="line.860"></a>
-<span class="sourceLineNo">861</span>   * Set path permission.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   */<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  private void setPermission(final FileSystem fs, final Path path, final short filesMode,<a name="line.863"></a>
-<span class="sourceLineNo">864</span>      final boolean recursive) throws IOException {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (filesMode &gt; 0) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      FsPermission perm = new FsPermission(filesMode);<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>          setPermission(fs, child.getPath(), filesMode, recursive);<a name="line.869"></a>
-<span class="sourceLineNo">870</span>        }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      fs.setPermission(path, perm);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>    }<a name="line.873"></a>
-<span class="sourceLineNo">874</span>  }<a name="line.874"></a>
-<span class="sourceLineNo">875</span><a name="line.875"></a>
-<span class="sourceLineNo">876</span>  private boolean verifyTarget = true;<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  private boolean verifyChecksum = true;<a name="line.877"></a>
-<span class="sourceLineNo">878</span>  private String snapshotName = null;<a name="line.878"></a>
-<span class="sourceLineNo">879</span>  private String targetName = null;<a name="line.879"></a>
-<span class="sourceLineNo">880</span>  private boolean overwrite = false;<a name="line.880"></a>
-<span class="sourceLineNo">881</span>  private String filesGroup = null;<a name="line.881"></a>
-<span class="sourceLineNo">882</span>  private String filesUser = null;<a name="line.882"></a>
-<span class="sourceLineNo">883</span>  private Path outputRoot = null;<a name="line.883"></a>
-<span class="sourceLineNo">884</span>  private Path inputRoot = null;<a name="line.884"></a>
-<span class="sourceLineNo">885</span>  private int bandwidthMB = Integer.MAX_VALUE;<a name="line.885"></a>
-<span class="sourceLineNo">886</span>  private int filesMode = 0;<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  private int mappers = 0;<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  @Override<a name="line.889"></a>
-<span class="sourceLineNo">890</span>  protected void processOptions(CommandLine cmd) {<a name="line.890"></a>
-<span class="sourceLineNo">891</span>    snapshotName = cmd.getOptionValue(Options.SNAPSHOT.getLongOpt(), snapshotName);<a name="line.891"></a>
-<span class="sourceLineNo">892</span>    targetName = cmd.getOptionValue(Options.TARGET_NAME.getLongOpt(), targetName);<a name="line.892"></a>
-<span class="sourceLineNo">893</span>    if (cmd.hasOption(Options.COPY_TO.getLongOpt())) {<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      outputRoot = new Path(cmd.getOptionValue(Options.COPY_TO.getLongOpt()));<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    if (cmd.hasOption(Options.COPY_FROM.getLongOpt())) {<a name="line.896"></a>
-<span class="sourceLineNo">897</span>      inputRoot = new Path(cmd.getOptionValue(Options.COPY_FROM.getLongOpt()));<a name="line.897"></a>
-<span class="sourceLineNo">898</span>    }<a name="line.898"></a>
-<span class="sourceLineNo">899</span>    mappers = getOptionAsInt(cmd, Options.MAPPERS.getLongOpt(), mappers);<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    filesUser = cmd.getOptionValue(Options.CHUSER.getLongOpt(), filesUser);<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    filesGroup = cmd.getOptionValue(Options.CHGROUP.getLongOpt(), filesGroup);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>    filesMode = getOptionAsInt(cmd, Options.CHMOD.getLongOpt(), filesMode);<a name="line.902"></a>
-<span class="sourceLineNo">903</span>    bandwidthMB = getOptionAsInt(cmd, Options.BANDWIDTH.getLongOpt(), bandwidthMB);<a name="line.903"></a>
-<span class="sourceLineNo">904</span>    overwrite = cmd.hasOption(Options.OVERWRITE.getLongOpt());<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    // And verifyChecksum and verifyTarget with values read from old args in processOldArgs(...).<a name="line.905"></a>
-<span class="sourceLineNo">906</span>    verifyChecksum = !cmd.hasOption(Options.NO_CHECKSUM_VERIFY.getLongOpt());<a name="line.906"></a>
-<span class="sourceLineNo">907</span>    verifyTarget = !cmd.hasOption(Options.NO_TARGET_VERIFY.getLongOpt());<a name="line.907"></a>
-<span class="sourceLineNo">908</span>  }<a name="line.908"></a>
-<span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>  /**<a name="line.910"></a>
-<span class="sourceLineNo">911</span>   * Execute the export snapshot by copying the snapshot metadata, hfiles and wals.<a name="line.911"></a>
-<span class="sourceLineNo">912</span>   * @return 0 on success, and != 0 upon failure.<a name="line.912"></a>
-<span class="sourceLineNo">913</span>   */<a name="line.913"></a>
-<span class="sourceLineNo">914</span>  @Override<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  public int doWork() throws IOException {<a name="line.915"></a>
-<span class="sourceLineNo">916</span>    Configuration conf = getConf();<a name="line.916"></a>
-<span class="sourceLineNo">917</span><a name="line.917"></a>
-<span class="sourceLineNo">918</span>    // Check user options<a name="line.918"></a>
-<span class="sourceLineNo">919</span>    if (snapshotName == null) {<a name="line.919"></a>
-<span class="sourceLineNo">920</span>      System.err.println("Snapshot name not provided.");<a name="line.920"></a>
-<span class="sourceLineNo">921</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      return 0;<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    }<a name="line.923"></a>
-<span class="sourceLineNo">924</span><a name="line.924"></a>
-<span class="sourceLineNo">925</span>    if (outputRoot == null) {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>      System.err.println("Destination file-system (--" + Options.COPY_TO.getLongOpt()<a name="line.926"></a>
-<span class="sourceLineNo">927</span>              + ") not provided.");<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      return 0;<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    }<a name="line.930"></a>
-<span class="sourceLineNo">931</span><a name="line.931"></a>
-<span class="sourceLineNo">932</span>    if (targetName == null) {<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      targetName = snapshotName;<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    }<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    if (inputRoot == null) {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>      inputRoot = FSUtils.getRootDir(conf);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    } else {<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      FSUtils.setRootDir(conf, inputRoot);<a name="line.938"></a>
-<span class="sourceLineNo">939</span>    }<a name="line.939"></a>
-<span class="sourceLineNo">940</span><a name="line.940"></a>
-<span class="sourceLineNo">941</span>    Configuration srcConf = HBaseConfiguration.createClusterConf(conf, null, CONF_SOURCE_PREFIX);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>    srcConf.setBoolean("fs." + inputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    FileSystem inputFs = FileSystem.get(inputRoot.toUri(), srcConf);<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    LOG.debug("inputFs=" + inputFs.getUri().toString() + " inputRoot=" + inputRoot);<a name="line.944"></a>
-<span class="sourceLineNo">945</span>    Configuration destConf = HBaseConfiguration.createClusterConf(conf, null, CONF_DEST_PREFIX);<a name="line.945"></a>
-<span class="sourceLineNo">946</span>    destConf.setBoolean("fs." + outputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.946"></a>
-<span class="sourceLineNo">947</span>    FileSystem outputFs = FileSystem.get(outputRoot.toUri(), destConf);<a name="line.947"></a>
-<span class="sourceLineNo">948</span>    LOG.debug("outputFs=" + outputFs.getUri().toString() + " outputRoot=" + outputRoot.toString());<a name="line.948"></a>
+<span class="sourceLineNo">829</span>      throw new ExportSnapshotException(job.getStatus().getFailureInfo());<a name="line.829"></a>
+<span class="sourceLineNo">830</span>    }<a name="line.830"></a>
+<span class="sourceLineNo">831</span>  }<a name="line.831"></a>
+<span class="sourceLineNo">832</span><a name="line.832"></a>
+<span class="sourceLineNo">833</span>  private void verifySnapshot(final Configuration baseConf,<a name="line.833"></a>
+<span class="sourceLineNo">834</span>      final FileSystem fs, final Path rootDir, final Path snapshotDir) throws IOException {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    // Update the conf with the current root dir, since may be a different cluster<a name="line.835"></a>
+<span class="sourceLineNo">836</span>    Configuration conf = new Configuration(baseConf);<a name="line.836"></a>
+<span class="sourceLineNo">837</span>    FSUtils.setRootDir(conf, rootDir);<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    FSUtils.setFsDefault(conf, FSUtils.getRootDir(conf));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>    SnapshotDescription snapshotDesc = SnapshotDescriptionUtils.readSnapshotInfo(fs, snapshotDir);<a name="line.839"></a>
+<span class="sourceLineNo">840</span>    SnapshotReferenceUtil.verifySnapshot(conf, fs, snapshotDir, snapshotDesc);<a name="line.840"></a>
+<span class="sourceLineNo">841</span>  }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>  /**<a name="line.843"></a>
+<span class="sourceLineNo">844</span>   * Set path ownership.<a name="line.844"></a>
+<span class="sourceLineNo">845</span>   */<a name="line.845"></a>
+<span class="sourceLineNo">846</span>  private void setOwner(final FileSystem fs, final Path path, final String user,<a name="line.846"></a>
+<span class="sourceLineNo">847</span>      final String group, final boolean recursive) throws IOException {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    if (user != null || group != null) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>          setOwner(fs, child.getPath(), user, group, recursive);<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span>      }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>      fs.setOwner(path, user, group);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>    }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>  }<a name="line.856"></a>
+<span class="sourceLineNo">857</span><a name="line.857"></a>
+<span class="sourceLineNo">858</span>  /**<a name="line.858"></a>
+<span class="sourceLineNo">859</span>   * Set path permission.<a name="line.859"></a>
+<span class="sourceLineNo">860</span>   */<a name="line.860"></a>
+<span class="sourceLineNo">861</span>  private void setPermission(final FileSystem fs, final Path path, final short filesMode,<a name="line.861"></a>
+<span class="sourceLineNo">862</span>      final boolean recursive) throws IOException {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>    if (filesMode &gt; 0) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>      FsPermission perm = new FsPermission(filesMode);<a name="line.864"></a>
+<span class="sourceLineNo">865</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>          setPermission(fs, child.getPath(), filesMode, recursive);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>        }<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>      fs.setPermission(path, perm);<a name="line.870"></a>
+<span class="sourceLineNo">871</span>    }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>  }<a name="line.872"></a>
+<span class="sourceLineNo">873</span><a name="line.873"></a>
+<span class="sourceLineNo">874</span>  private boolean verifyTarget = true;<a name="line.874"></a>
+<span class="sourceLineNo">875</span>  private boolean verifyChecksum = true;<a name="line.875"></a>
+<span class="sourceLineNo">876</span>  private String snapshotName = null;<a name="line.876"></a>
+<span class="sourceLineNo">877</span>  private String targetName = null;<a name="line.877"></a>
+<span class="sourceLineNo">878</span>  private boolean overwrite = false;<a name="line.878"></a>
+<span class="sourceLineNo">879</span>  private String filesGroup = null;<a name="line.879"></a>
+<span class="sourceLineNo">880</span>  private String filesUser = null;<a name="line.880"></a>
+<span class="sourceLineNo">881</span>  private Path outputRoot = null;<a name="line.881"></a>
+<span class="sourceLineNo">882</span>  private Path inputRoot = null;<a name="line.882"></a>
+<span class="sourceLineNo">883</span>  private int bandwidthMB = Integer.MAX_VALUE;<a name="line.883"></a>
+<span class="sourceLineNo">884</span>  private int filesMode = 0;<a name="line.884"></a>
+<span class="sourceLineNo">885</span>  private int mappers = 0;<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>  @Override<a name="line.887"></a>
+<span class="sourceLineNo">888</span>  protected void processOptions(CommandLine cmd) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    snapshotName = cmd.getOptionValue(Options.SNAPSHOT.getLongOpt(), snapshotName);<a name="line.889"></a>
+<span class="sourceLineNo">890</span>    targetName = cmd.getOptionValue(Options.TARGET_NAME.getLongOpt(), targetName);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>    if (cmd.hasOption(Options.COPY_TO.getLongOpt())) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>      outputRoot = new Path(cmd.getOptionValue(Options.COPY_TO.getLongOpt()));<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    }<a name="line.893"></a>
+<span class="sourceLineNo">894</span>    if (cmd.hasOption(Options.COPY_FROM.getLongOpt())) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>      inputRoot = new Path(cmd.getOptionValue(Options.COPY_FROM.getLongOpt()));<a name="line.895"></a>
+<span class="sourceLineNo">896</span>    }<a name="line.896"></a>
+<span class="sourceLineNo">897</span>    mappers = getOptionAsInt(cmd, Options.MAPPERS.getLongOpt(), mappers);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    filesUser = cmd.getOptionValue(Options.CHUSER.getLongOpt(), filesUser);<a name="line.898"></a>
+<span class="sourceLineNo">899</span>    filesGroup = cmd.getOptionValue(Options.CHGROUP.getLongOpt(), filesGroup);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>    filesMode = getOptionAsInt(cmd, Options.CHMOD.getLongOpt(), filesMode);<a name="line.900"></a>
+<span class="sourceLineNo">901</span>    bandwidthMB = getOptionAsInt(cmd, Options.BANDWIDTH.getLongOpt(), bandwidthMB);<a name="line.901"></a>
+<span class="sourceLineNo">902</span>    overwrite = cmd.hasOption(Options.OVERWRITE.getLongOpt());<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    // And verifyChecksum and verifyTarget with values read from old args in processOldArgs(...).<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    verifyChecksum = !cmd.hasOption(Options.NO_CHECKSUM_VERIFY.getLongOpt());<a name="line.904"></a>
+<span class="sourceLineNo">905</span>    verifyTarget = !cmd.hasOption(Options.NO_TARGET_VERIFY.getLongOpt());<a name="line.905"></a>
+<span class="sourceLineNo">906</span>  }<a name="line.906"></a>
+<span class="sourceLineNo">907</span><a name="line.907"></a>
+<span class="sourceLineNo">908</span>  /**<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   * Execute the export snapshot by copying the snapshot metadata, hfiles and wals.<a name="line.909"></a>
+<span class="sourceLineNo">910</span>   * @return 0 on success, and != 0 upon failure.<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>  @Override<a name="line.912"></a>
+<span class="sourceLineNo">913</span>  public int doWork() throws IOException {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    Configuration conf = getConf();<a name="line.914"></a>
+<span class="sourceLineNo">915</span><a name="line.915"></a>
+<span class="sourceLineNo">916</span>    // Check user options<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    if (snapshotName == null) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>      System.err.println("Snapshot name not provided.");<a name="line.918"></a>
+<span class="sourceLineNo">919</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.919"></a>
+<span class="sourceLineNo">920</span>      return 0;<a name="line.920"></a>
+<span class="sourceLineNo">921</span>    }<a name="line.921"></a>
+<span class="sourceLineNo">922</span><a name="line.922"></a>
+<span class="sourceLineNo">923</span>    if (outputRoot == null) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>      System.err.println("Destination file-system (--" + Options.COPY_TO.getLongOpt()<a name="line.924"></a>
+<span class="sourceLineNo">925</span>              + ") not provided.");<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      return 0;<a name="line.927"></a>
+<span class="sourceLineNo">928</span>    }<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>    if (targetName == null) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      targetName = snapshotName;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    if (inputRoot == null) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      inputRoot = FSUtils.getRootDir(conf);<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    } else {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>      FSUtils.setRootDir(conf, inputRoot);<a name="line.936"></a>
+<span class="sourceLineNo">937</span>    }<a name="line.937"></a>
+<span class="sourceLineNo">938</span><a name="line.938"></a>
+<span class="sourceLineNo">939</span>    Configuration srcConf = HBaseConfiguration.createClusterConf(conf, null, CONF_SOURCE_PREFIX);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    srcConf.setBoolean("fs." + inputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    FileSystem inputFs = FileSystem.get(inputRoot.toUri(), srcConf);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>    LOG.debug("inputFs=" + inputFs.getUri().toString() + " inputRoot=" + inputRoot);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>    Configuration destConf = HBaseConfiguration.createClusterConf(conf, null, CONF_DEST_PREFIX);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>    destConf.setBoolean("fs." + outputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>    FileSystem outputFs = FileSystem.get(outputRoot.toUri(), destConf);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    LOG.debug("outputFs=" + outputFs.getUri().toString() + " outputRoot=" + outputRoot.toString());<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>    boolean skipTmp = conf.getBoolean(CONF_SKIP_TMP, false);<a name="line.948"></a>
 <span class="sourceLineNo">949</span><a name="line.949"></a>
-<span class="sourceLineNo">950</span>    boolean skipTmp = conf.getBoolean(CONF_SKIP_TMP, false);<a name="line.950"></a>
-<span class="sourceLineNo">951</span><a name="line.951"></a>
-<span class="sourceLineNo">952</span>    Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshotName, inputRoot);<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    Path snapshotTmpDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(targetName, outputRoot);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    Path outputSnapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(targetName, outputRoot);<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    Path initialOutputSnapshotDir = skipTmp ? outputSnapshotDir : snapshotTmpDir;<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>    // Find the necessary directory which need to change owner and group<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    Path needSetOwnerDir = SnapshotDescriptionUtils.getSnapshotRootDir(outputRoot);<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    if (outputFs.exists(needSetOwnerDir)) {<a name="line.959"></a>
-<span class="sourceLineNo">960</span>      if (skipTmp) {<a name="line.960"></a>
-<span class="sourceLineNo">961</span>        needSetOwnerDir = outputSnapshotDir;<a name="line.961"></a>
-<span class="sourceLineNo">962</span>      } else {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>        needSetOwnerDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(outputRoot);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>        if (outputFs.exists(needSetOwnerDir)) {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>          needSetOwnerDir = snapshotTmpDir;<a name="line.965"></a>
-<span class="sourceLineNo">966</span>        }<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
-<span class="sourceLineNo">969</span><a name="line.969"></a>
-<span class="sourceLineNo">970</span>    // Check if the snapshot already exists<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (outputFs.exists(outputSnapshotDir)) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      if (overwrite) {<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        if (!outputFs.delete(outputSnapshotDir, true)) {<a name="line.973"></a>
-<span class="sourceLineNo">974</span>          System.err.println("Unable to remove existing snapshot directory: " + outputSnapshotDir);<a name="line.974"></a>
-<span class="sourceLineNo">975</span>          return 1;<a name="line.975"></a>
-<span class="sourceLineNo">976</span>        }<a name="line.976"></a>
-<span class="sourceLineNo">977</span>      } else {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>        System.err.println("The snapshot '" + targetName +<a name="line.978"></a>
-<span class="sourceLineNo">979</span>          "' already exists in the destination: " + outputSnapshotDir);<a name="line.979"></a>
-<span class="sourceLineNo">980</span>        return 1;<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      }<a name="line.981"></a>
-<span class="sourceLineNo">982</span>    }<a name="line.982"></a>
-<span class="sourceLineNo">983</span><a name="line.983"></a>
-<span class="sourceLineNo">984</span>    if (!skipTmp) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      // Check if the snapshot already in-progress<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      if (outputFs.exists(snapshotTmpDir)) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>        if (overwrite) {<a name="line.987"></a>
-<span class="sourceLineNo">988</span>          if (!outputFs.delete(snapshotTmpDir, true)) {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            System.err.println("Unable to remove existing snapshot tmp directory: "+snapshotTmpDir);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>            return 1;<a name="line.990"></a>
-<span class="sourceLineNo">991</span>          }<a name="line.991"></a>
-<span class="sourceLineNo">992</span>        } else {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>          System.err.println("A snapshot with the same name '"+ targetName +"' may be in-progress");<a name="line.993"></a>
-<span class="sourceLineNo">994</span>          System.err.println("Please check "+snapshotTmpDir+". If the snapshot has completed, ");<a name="line.994"></a>
-<span class="sourceLineNo">995</span>          System.err.println("consider removing "+snapshotTmpDir+" by using the -overwrite option");<a name="line.995"></a>
-<span class="sourceLineNo">996</span>          return 1;<a name="line.996"></a>
-<span class="sourceLineNo">997</span>        }<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      }<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span><a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // Step 1 - Copy fs1:/.snapshot/&lt;snapshot&gt; to  fs2:/.snapshot/.tmp/&lt;snapshot&gt;<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // The snapshot references must be copied before the hfiles otherwise the cleaner<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    // will remove them because they are unreferenced.<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      LOG.info("Copy Snapshot Manifest");<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      FileUtil.copy(inputFs, snapshotDir, outputFs, initialOutputSnapshotDir, false, false, conf);<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    } catch (IOException e) {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      throw new ExportSnapshotException("Failed to copy the snapshot directory: from=" +<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>        snapshotDir + " to=" + initialOutputSnapshotDir, e);<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    } finally {<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      if (filesUser != null || filesGroup != null) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        LOG.warn((filesUser == null ? "" : "Change the owner of " + needSetOwnerDir + " to "<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>            + filesUser)<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>            + (filesGroup == null ? "" : ", Change the group of " + needSetOwnerDir + " to "<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>            + filesGroup));<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        setOwner(outputFs, needSetOwnerDir, filesUser, filesGroup, true);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>      }<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      if (filesMode &gt; 0) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>        LOG.warn("Change the permission of " + needSetOwnerDir + " to " + filesMode);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        setPermission(outputFs, needSetOwnerDir, (short)filesMode, true);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    }<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span><a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    // Write a new .snapshotinfo if the target name is different from the source name<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    if (!targetName.equals(snapshotName)) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      SnapshotDescription snapshotDesc =<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>        SnapshotDescriptionUtils.readSnapshotInfo(inputFs, snapshotDir)<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>          .toBuilder()<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          .setName(targetName)<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>          .build();<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>      SnapshotDescriptionUtils.writeSnapshotInfo(snapshotDesc, initialOutputSnapshotDir, outputFs);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>      if (filesUser != null || filesGroup != null) {<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>        outputFs.setOwner(new Path(initialOutputSnapshotDir,<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), filesUser, filesGroup);<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>      }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>      if (filesMode &gt; 0) {<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>        outputFs.setPermission(new Path(initialOutputSnapshotDir,<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), new FsPermission((short)filesMode));<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>      }<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>    // Step 2 - Start MR Job to copy files<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    // The snapshot references must be copied before the files otherwise the files gets removed<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>    // by the HFileArchiver, since they have no references.<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>    try {<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>      runCopyJob(inputRoot, outputRoot, snapshotName, snapshotDir, verifyChecksum,<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>                 filesUser, filesGroup, filesMode, mappers, bandwidthMB);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span><a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      LOG.info("Finalize the Snapshot Export");<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>      if (!skipTmp) {<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>        // Step 3 - Rename fs2:/.snapshot/.tmp/&lt;snapshot&gt; fs2:/.snapshot/&lt;snapshot&gt;<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        if (!outputFs.rename(snapshotTmpDir, outputSnapshotDir)) {<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>          throw new ExportSnapshotException("Unable to rename snapshot directory from=" +<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>            snapshotTmpDir + " to=" + outputSnapshotDir);<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        }<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>      }<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span><a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>      // Step 4 - Verify snapshot integrity<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>      if (verifyTarget) {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>        LOG.info("Verify snapshot integrity");<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>        verifySnapshot(destConf, outputFs, outputRoot, outputSnapshotDir);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>      }<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span><a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>      LOG.info("Export Completed: " + targetName);<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>      return 0;<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>    } catch (Exception e) {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>      LOG.error("Snapshot export failed", e);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>      if (!skipTmp) {<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>        outputFs.delete(snapshotTmpDir, true);<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      }<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>      outputFs.delete(outputSnapshotDir, true);<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      return 1;<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    } finally {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      IOUtils.closeStream(inputFs);<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>      IOUtils.closeStream(outputFs);<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>    }<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>  @Override<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  protected void printUsage() {<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    super.printUsage();<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    System.out.println("\n"<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>        + "Examples:\n"<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        + "  hbase snapshot export \\\n"<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        + "    --snapshot MySnapshot --copy-to hdfs://srv2:8082/hbase \\\n"<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>        + "    --chuser MyUser --chgroup MyGroup --chmod 700 --mappers 16\n"<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        + "\n"<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>        + "  hbase snapshot export \\\n"<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>        + "    --snapshot MySnapshot --copy-from hdfs://srv2:8082/hbase \\\n"<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        + "    --copy-to hdfs://srv1:50070/hbase");<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>  @Override protected void addOptions() {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    addRequiredOption(Options.SNAPSHOT);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    addOption(Options.COPY_TO);<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>    addOption(Options.COPY_FROM);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    addOption(Options.TARGET_NAME);<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    addOption(Options.NO_CHECKSUM_VERIFY);<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>    addOption(Options.NO_TARGET_VERIFY);<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>    addOption(Options.OVERWRITE);<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    addOption(Options.CHUSER);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    addOption(Options.CHGROUP);<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    addOption(Options.CHMOD);<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    addOption(Options.MAPPERS);<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>    addOption(Options.BANDWIDTH);<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  }<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span><a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>  public static void main(String[] args) {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    new ExportSnapshot().doStaticMain(args);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>  }<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>}<a name="line.1111"></a>
+<span class="sourceLineNo">950</span>    Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshotName, inputRoot);<a name="line.950"></a>
+<span class="sourceLineNo">951</span>    Path snapshotTmpDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(targetName, outputRoot);<a name="line.951"></a>
+<span class="sourceLineNo">952</span>    Path outputSnapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(targetName, outputRoot);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>    Path initialOutputSnapshotDir = skipTmp ? outputSnapshotDir : snapshotTmpDir;<a name="line.953"></a>
+<span class="sourceLineNo">954</span><a name="line.954"></a>
+<span class="sourceLineNo">955</span>    // Find the necessary directory which need to change owner and group<a name="line.955"></a>
+<span class="sourceLineNo">956</span>    Path needSetOwnerDir = SnapshotDescriptionUtils.getSnapshotRootDir(outputRoot);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    if (outputFs.exists(needSetOwnerDir)) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>      if (skipTmp) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        needSetOwnerDir = outputSnapshotDir;<a name="line.959"></a>
+<span class="sourceLineNo">960</span>      } else {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        needSetOwnerDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(outputRoot);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>        if (outputFs.exists(needSetOwnerDir)) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>          needSetOwnerDir = snapshotTmpDir;<a name="line.963"></a>
+<span class="sourceLineNo">964</span>        }<a name="line.964"></a>
+<span class="sourceLineNo">965</span>      }<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    }<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>    // Check if the snapshot already exists<a name="line.968"></a>
+<span class="sourceLineNo">969</span>    if (outputFs.exists(outputSnapshotDir)) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>      if (overwrite) {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>        if (!outputFs.delete(outputSnapshotDir, true)) {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>          System.err.println("Unable to remove existing snapshot directory: " + outputSnapshotDir);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>          return 1;<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>      } else {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>        System.err.println("The snapshot '" + targetName +<a name="line.976"></a>
+<span class="sourceLineNo">977</span>          "' already exists in the destination: " + outputSnapshotDir);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        return 1;<a name="line.978"></a>
+<span class="sourceLineNo">979</span>      }<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    if (!skipTmp) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>      // Check if the snapshot already in-progress<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      if (outputFs.exists(snapshotTmpDir)) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>        if (overwrite) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>          if (!outputFs.delete(snapshotTmpDir, true)) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>            System.err.println("Unable to remove existing snapshot tmp directory: "+snapshotTmpDir);<a name="line.987"></a>
+<span class="sourceLineNo">988</span>            return 1;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>          }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>        } else {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>          System.err.println("A snapshot with the same name '"+ targetName +"' may be in-progress");<a name="line.991"></a>
+<span class="sourceLineNo">992</span>          System.err.println("Please check "+snapshotTmpDir+". If the snapshot has completed, ");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>          System.err.println("consider removing "+snapshotTmpDir+" by using the -overwrite option");<a name="line.993"></a>
+<span class="sourceLineNo">994</span>          return 1;<a name="line.994"></a>
+<span class="sourceLineNo">995</span>        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>      }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    }<a name="line.997"></a>
+<span class="sourceLineNo">998</span><a name="line.998"></a>
+<span class="sourceLineNo">999</span>    // Step 1 - Copy fs1:/.snapshot/&lt;snapshot&gt; to  fs2:/.snapshot/.tmp/&lt;snapshot&gt;<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    // The snapshot references must be copied before the hfiles otherwise the cleaner<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    // will remove them because they are unreferenced.<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>    try {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>      LOG.info("Copy Snapshot Manifest");<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      FileUtil.copy(inputFs, snapshotDir, outputFs, initialOutputSnapshotDir, false, false, conf);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    } catch (IOException e) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      throw new ExportSnapshotException("Failed to copy the snapshot directory: from=" +<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        snapshotDir + " to=" + initialOutputSnapshotDir, e);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    } finally {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      if (filesUser != null || filesGroup != null) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>        LOG.warn((filesUser == null ? "" : "Change the owner of " + needSetOwnerDir + " to "<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>            + filesUser)<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>            + (filesGroup == null ? "" : ", Change the group of " + needSetOwnerDir + " to "<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>            + filesGroup));<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        setOwner(outputFs, needSetOwnerDir, filesUser, filesGroup, true);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>      }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      if (filesMode &gt; 0) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>        LOG.warn("Change the permission of " + needSetOwnerDir + " to " + filesMode);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        setPermission(outputFs, needSetOwnerDir, (short)filesMode, true);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>      }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    }<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span><a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>    // Write a new .snapshotinfo if the target name is different from the source name<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>    if (!targetName.equals(snapshotName)) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>      SnapshotDescription snapshotDesc =<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>        SnapshotDescriptionUtils.readSnapshotInfo(inputFs, snapshotDir)<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>          .toBuilder()<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>          .setName(targetName)<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>          .build();<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      SnapshotDescriptionUtils.writeSnapshotInfo(snapshotDesc, initialOutputSnapshotDir, outputFs);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      if (filesUser != null || filesGroup != null) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        outputFs.setOwner(new Path(initialOutputSnapshotDir,<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), filesUser, filesGroup);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>      }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>      if (filesMode &gt; 0) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        outputFs.setPermission(new Path(initialOutputSnapshotDir,<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), new FsPermission((short)filesMode));<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>      }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>    }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>    // Step 2 - Start MR Job to copy files<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>    // The snapshot references must be copied before the files otherwise the files gets removed<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>    // by the HFileArchiver, since they have no references.<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>    try {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>      runCopyJob(inputRoot, outputRoot, snapshotName, snapshotDir, verifyChecksum,<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                 filesUser, filesGroup, filesMode, mappers, bandwidthMB);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span><a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>      LOG.info("Finalize the Snapshot Export");<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      if (!skipTmp) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        // Step 3 - Rename fs2:/.snapshot/.tmp/&lt;snapshot&gt; fs2:/.snapshot/&lt;snapshot&gt;<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        if (!outputFs.rename(snapshotTmpDir, outputSnapshotDir)) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>          throw new ExportSnapshotException("Unable to rename snapshot directory from=" +<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>            snapshotTmpDir + " to=" + outputSnapshotDir);<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span><a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>      // Step 4 - Verify snapshot integrity<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      if (verifyTarget) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        LOG.info("Verify snapshot integrity");<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        verifySnapshot(destConf, outputFs, outputRoot, outputSnapshotDir);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>      }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      LOG.info("Export Completed: " + targetName);<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      return 0;<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>    } catch (Exception e) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>      LOG.error("Snapshot export failed", e);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      if (!skipTmp) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        outputFs.delete(snapshotTmpDir, true);<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      }<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      outputFs.delete(outputSnapshotDir, true);<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      return 1;<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>    } finally {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      IOUtils.closeStream(inputFs);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>      IOUtils.closeStream(outputFs);<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    }<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  @Override<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>  protected void printUsage() {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    super.printUsage();<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    System.out.println("\n"<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        + "Examples:\n"<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>        + "  hbase snapshot export \\\n"<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>        + "    --snapshot MySnapshot --copy-to hdfs://srv2:8082/hbase \\\n"<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        + "    --chuser MyUser --chgroup MyGroup --chmod 700 --mappers 16\n"<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>        + "\n"<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>        + "  hbase snapshot export \\\n"<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>        + "    --snapshot MySnapshot --copy-from hdfs://srv2:8082/hbase \\\n"<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        + "    --copy-to hdfs://srv1:50070/hbase");<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>  @Override protected void addOptions() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    addRequiredOption(Options.SNAPSHOT);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    addOption(Options.COPY_TO);<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>    addOption(Options.COPY_FROM);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>    addOption(Options.TARGET_NAME);<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>    addOption(Options.NO_CHECKSUM_VERIFY);<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>    addOption(Options.NO_TARGET_VERIFY);<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>    addOption(Options.OVERWRITE);<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>    addOption(Options.CHUSER);<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>    addOption(Options.CHGROUP);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>    addOption(Options.CHMOD);<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>    addOption(Options.MAPPERS);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    addOption(Options.BANDWIDTH);<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>  }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span><a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>  public static void main(String[] args) {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    new ExportSnapshot().doStaticMain(args);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  }<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>}<a name="line.1109"></a>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html b/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html
index a73c866..dd2d739 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html
@@ -834,289 +834,287 @@
 <span class="sourceLineNo">826</span><a name="line.826"></a>
 <span class="sourceLineNo">827</span>    // Run the MR Job<a name="line.827"></a>
 <span class="sourceLineNo">828</span>    if (!job.waitForCompletion(true)) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>      // TODO: Replace the fixed string with job.getStatus().getFailureInfo()<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      // when it will be available on all the supported versions.<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      throw new ExportSnapshotException("Copy Files Map-Reduce Job failed");<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    }<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  }<a name="line.833"></a>
-<span class="sourceLineNo">834</span><a name="line.834"></a>
-<span class="sourceLineNo">835</span>  private void verifySnapshot(final Configuration baseConf,<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      final FileSystem fs, final Path rootDir, final Path snapshotDir) throws IOException {<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    // Update the conf with the current root dir, since may be a different cluster<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    Configuration conf = new Configuration(baseConf);<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    FSUtils.setRootDir(conf, rootDir);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    FSUtils.setFsDefault(conf, FSUtils.getRootDir(conf));<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    SnapshotDescription snapshotDesc = SnapshotDescriptionUtils.readSnapshotInfo(fs, snapshotDir);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    SnapshotReferenceUtil.verifySnapshot(conf, fs, snapshotDir, snapshotDesc);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>  }<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>   * Set path ownership.<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   */<a name="line.847"></a>
-<span class="sourceLineNo">848</span>  private void setOwner(final FileSystem fs, final Path path, final String user,<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      final String group, final boolean recursive) throws IOException {<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    if (user != null || group != null) {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.851"></a>
-<span class="sourceLineNo">852</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          setOwner(fs, child.getPath(), user, group, recursive);<a name="line.853"></a>
-<span class="sourceLineNo">854</span>        }<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      }<a name="line.855"></a>
-<span class="sourceLineNo">856</span>      fs.setOwner(path, user, group);<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    }<a name="line.857"></a>
-<span class="sourceLineNo">858</span>  }<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>  /**<a name="line.860"></a>
-<span class="sourceLineNo">861</span>   * Set path permission.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   */<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  private void setPermission(final FileSystem fs, final Path path, final short filesMode,<a name="line.863"></a>
-<span class="sourceLineNo">864</span>      final boolean recursive) throws IOException {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (filesMode &gt; 0) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      FsPermission perm = new FsPermission(filesMode);<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>          setPermission(fs, child.getPath(), filesMode, recursive);<a name="line.869"></a>
-<span class="sourceLineNo">870</span>        }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      fs.setPermission(path, perm);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>    }<a name="line.873"></a>
-<span class="sourceLineNo">874</span>  }<a name="line.874"></a>
-<span class="sourceLineNo">875</span><a name="line.875"></a>
-<span class="sourceLineNo">876</span>  private boolean verifyTarget = true;<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  private boolean verifyChecksum = true;<a name="line.877"></a>
-<span class="sourceLineNo">878</span>  private String snapshotName = null;<a name="line.878"></a>
-<span class="sourceLineNo">879</span>  private String targetName = null;<a name="line.879"></a>
-<span class="sourceLineNo">880</span>  private boolean overwrite = false;<a name="line.880"></a>
-<span class="sourceLineNo">881</span>  private String filesGroup = null;<a name="line.881"></a>
-<span class="sourceLineNo">882</span>  private String filesUser = null;<a name="line.882"></a>
-<span class="sourceLineNo">883</span>  private Path outputRoot = null;<a name="line.883"></a>
-<span class="sourceLineNo">884</span>  private Path inputRoot = null;<a name="line.884"></a>
-<span class="sourceLineNo">885</span>  private int bandwidthMB = Integer.MAX_VALUE;<a name="line.885"></a>
-<span class="sourceLineNo">886</span>  private int filesMode = 0;<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  private int mappers = 0;<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  @Override<a name="line.889"></a>
-<span class="sourceLineNo">890</span>  protected void processOptions(CommandLine cmd) {<a name="line.890"></a>
-<span class="sourceLineNo">891</span>    snapshotName = cmd.getOptionValue(Options.SNAPSHOT.getLongOpt(), snapshotName);<a name="line.891"></a>
-<span class="sourceLineNo">892</span>    targetName = cmd.getOptionValue(Options.TARGET_NAME.getLongOpt(), targetName);<a name="line.892"></a>
-<span class="sourceLineNo">893</span>    if (cmd.hasOption(Options.COPY_TO.getLongOpt())) {<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      outputRoot = new Path(cmd.getOptionValue(Options.COPY_TO.getLongOpt()));<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    if (cmd.hasOption(Options.COPY_FROM.getLongOpt())) {<a name="line.896"></a>
-<span class="sourceLineNo">897</span>      inputRoot = new Path(cmd.getOptionValue(Options.COPY_FROM.getLongOpt()));<a name="line.897"></a>
-<span class="sourceLineNo">898</span>    }<a name="line.898"></a>
-<span class="sourceLineNo">899</span>    mappers = getOptionAsInt(cmd, Options.MAPPERS.getLongOpt(), mappers);<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    filesUser = cmd.getOptionValue(Options.CHUSER.getLongOpt(), filesUser);<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    filesGroup = cmd.getOptionValue(Options.CHGROUP.getLongOpt(), filesGroup);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>    filesMode = getOptionAsInt(cmd, Options.CHMOD.getLongOpt(), filesMode);<a name="line.902"></a>
-<span class="sourceLineNo">903</span>    bandwidthMB = getOptionAsInt(cmd, Options.BANDWIDTH.getLongOpt(), bandwidthMB);<a name="line.903"></a>
-<span class="sourceLineNo">904</span>    overwrite = cmd.hasOption(Options.OVERWRITE.getLongOpt());<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    // And verifyChecksum and verifyTarget with values read from old args in processOldArgs(...).<a name="line.905"></a>
-<span class="sourceLineNo">906</span>    verifyChecksum = !cmd.hasOption(Options.NO_CHECKSUM_VERIFY.getLongOpt());<a name="line.906"></a>
-<span class="sourceLineNo">907</span>    verifyTarget = !cmd.hasOption(Options.NO_TARGET_VERIFY.getLongOpt());<a name="line.907"></a>
-<span class="sourceLineNo">908</span>  }<a name="line.908"></a>
-<span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>  /**<a name="line.910"></a>
-<span class="sourceLineNo">911</span>   * Execute the export snapshot by copying the snapshot metadata, hfiles and wals.<a name="line.911"></a>
-<span class="sourceLineNo">912</span>   * @return 0 on success, and != 0 upon failure.<a name="line.912"></a>
-<span class="sourceLineNo">913</span>   */<a name="line.913"></a>
-<span class="sourceLineNo">914</span>  @Override<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  public int doWork() throws IOException {<a name="line.915"></a>
-<span class="sourceLineNo">916</span>    Configuration conf = getConf();<a name="line.916"></a>
-<span class="sourceLineNo">917</span><a name="line.917"></a>
-<span class="sourceLineNo">918</span>    // Check user options<a name="line.918"></a>
-<span class="sourceLineNo">919</span>    if (snapshotName == null) {<a name="line.919"></a>
-<span class="sourceLineNo">920</span>      System.err.println("Snapshot name not provided.");<a name="line.920"></a>
-<span class="sourceLineNo">921</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      return 0;<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    }<a name="line.923"></a>
-<span class="sourceLineNo">924</span><a name="line.924"></a>
-<span class="sourceLineNo">925</span>    if (outputRoot == null) {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>      System.err.println("Destination file-system (--" + Options.COPY_TO.getLongOpt()<a name="line.926"></a>
-<span class="sourceLineNo">927</span>              + ") not provided.");<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      return 0;<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    }<a name="line.930"></a>
-<span class="sourceLineNo">931</span><a name="line.931"></a>
-<span class="sourceLineNo">932</span>    if (targetName == null) {<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      targetName = snapshotName;<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    }<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    if (inputRoot == null) {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>      inputRoot = FSUtils.getRootDir(conf);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    } else {<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      FSUtils.setRootDir(conf, inputRoot);<a name="line.938"></a>
-<span class="sourceLineNo">939</span>    }<a name="line.939"></a>
-<span class="sourceLineNo">940</span><a name="line.940"></a>
-<span class="sourceLineNo">941</span>    Configuration srcConf = HBaseConfiguration.createClusterConf(conf, null, CONF_SOURCE_PREFIX);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>    srcConf.setBoolean("fs." + inputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    FileSystem inputFs = FileSystem.get(inputRoot.toUri(), srcConf);<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    LOG.debug("inputFs=" + inputFs.getUri().toString() + " inputRoot=" + inputRoot);<a name="line.944"></a>
-<span class="sourceLineNo">945</span>    Configuration destConf = HBaseConfiguration.createClusterConf(conf, null, CONF_DEST_PREFIX);<a name="line.945"></a>
-<span class="sourceLineNo">946</span>    destConf.setBoolean("fs." + outputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.946"></a>
-<span class="sourceLineNo">947</span>    FileSystem outputFs = FileSystem.get(outputRoot.toUri(), destConf);<a name="line.947"></a>
-<span class="sourceLineNo">948</span>    LOG.debug("outputFs=" + outputFs.getUri().toString() + " outputRoot=" + outputRoot.toString());<a name="line.948"></a>
+<span class="sourceLineNo">829</span>      throw new ExportSnapshotException(job.getStatus().getFailureInfo());<a name="line.829"></a>
+<span class="sourceLineNo">830</span>    }<a name="line.830"></a>
+<span class="sourceLineNo">831</span>  }<a name="line.831"></a>
+<span class="sourceLineNo">832</span><a name="line.832"></a>
+<span class="sourceLineNo">833</span>  private void verifySnapshot(final Configuration baseConf,<a name="line.833"></a>
+<span class="sourceLineNo">834</span>      final FileSystem fs, final Path rootDir, final Path snapshotDir) throws IOException {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    // Update the conf with the current root dir, since may be a different cluster<a name="line.835"></a>
+<span class="sourceLineNo">836</span>    Configuration conf = new Configuration(baseConf);<a name="line.836"></a>
+<span class="sourceLineNo">837</span>    FSUtils.setRootDir(conf, rootDir);<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    FSUtils.setFsDefault(conf, FSUtils.getRootDir(conf));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>    SnapshotDescription snapshotDesc = SnapshotDescriptionUtils.readSnapshotInfo(fs, snapshotDir);<a name="line.839"></a>
+<span class="sourceLineNo">840</span>    SnapshotReferenceUtil.verifySnapshot(conf, fs, snapshotDir, snapshotDesc);<a name="line.840"></a>
+<span class="sourceLineNo">841</span>  }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>  /**<a name="line.843"></a>
+<span class="sourceLineNo">844</span>   * Set path ownership.<a name="line.844"></a>
+<span class="sourceLineNo">845</span>   */<a name="line.845"></a>
+<span class="sourceLineNo">846</span>  private void setOwner(final FileSystem fs, final Path path, final String user,<a name="line.846"></a>
+<span class="sourceLineNo">847</span>      final String group, final boolean recursive) throws IOException {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    if (user != null || group != null) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>          setOwner(fs, child.getPath(), user, group, recursive);<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span>      }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>      fs.setOwner(path, user, group);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>    }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>  }<a name="line.856"></a>
+<span class="sourceLineNo">857</span><a name="line.857"></a>
+<span class="sourceLineNo">858</span>  /**<a name="line.858"></a>
+<span class="sourceLineNo">859</span>   * Set path permission.<a name="line.859"></a>
+<span class="sourceLineNo">860</span>   */<a name="line.860"></a>
+<span class="sourceLineNo">861</span>  private void setPermission(final FileSystem fs, final Path path, final short filesMode,<a name="line.861"></a>
+<span class="sourceLineNo">862</span>      final boolean recursive) throws IOException {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>    if (filesMode &gt; 0) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>      FsPermission perm = new FsPermission(filesMode);<a name="line.864"></a>
+<span class="sourceLineNo">865</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>          setPermission(fs, child.getPath(), filesMode, recursive);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>        }<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>      fs.setPermission(path, perm);<a name="line.870"></a>
+<span class="sourceLineNo">871</span>    }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>  }<a name="line.872"></a>
+<span class="sourceLineNo">873</span><a name="line.873"></a>
+<span class="sourceLineNo">874</span>  private boolean verifyTarget = true;<a name="line.874"></a>
+<span class="sourceLineNo">875</span>  private boolean verifyChecksum = true;<a name="line.875"></a>
+<span class="sourceLineNo">876</span>  private String snapshotName = null;<a name="line.876"></a>
+<span class="sourceLineNo">877</span>  private String targetName = null;<a name="line.877"></a>
+<span class="sourceLineNo">878</span>  private boolean overwrite = false;<a name="line.878"></a>
+<span class="sourceLineNo">879</span>  private String filesGroup = null;<a name="line.879"></a>
+<span class="sourceLineNo">880</span>  private String filesUser = null;<a name="line.880"></a>
+<span class="sourceLineNo">881</span>  private Path outputRoot = null;<a name="line.881"></a>
+<span class="sourceLineNo">882</span>  private Path inputRoot = null;<a name="line.882"></a>
+<span class="sourceLineNo">883</span>  private int bandwidthMB = Integer.MAX_VALUE;<a name="line.883"></a>
+<span class="sourceLineNo">884</span>  private int filesMode = 0;<a name="line.884"></a>
+<span class="sourceLineNo">885</span>  private int mappers = 0;<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>  @Override<a name="line.887"></a>
+<span class="sourceLineNo">888</span>  protected void processOptions(CommandLine cmd) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    snapshotName = cmd.getOptionValue(Options.SNAPSHOT.getLongOpt(), snapshotName);<a name="line.889"></a>
+<span class="sourceLineNo">890</span>    targetName = cmd.getOptionValue(Options.TARGET_NAME.getLongOpt(), targetName);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>    if (cmd.hasOption(Options.COPY_TO.getLongOpt())) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>      outputRoot = new Path(cmd.getOptionValue(Options.COPY_TO.getLongOpt()));<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    }<a name="line.893"></a>
+<span class="sourceLineNo">894</span>    if (cmd.hasOption(Options.COPY_FROM.getLongOpt())) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>      inputRoot = new Path(cmd.getOptionValue(Options.COPY_FROM.getLongOpt()));<a name="line.895"></a>
+<span class="sourceLineNo">896</span>    }<a name="line.896"></a>
+<span class="sourceLineNo">897</span>    mappers = getOptionAsInt(cmd, Options.MAPPERS.getLongOpt(), mappers);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    filesUser = cmd.getOptionValue(Options.CHUSER.getLongOpt(), filesUser);<a name="line.898"></a>
+<span class="sourceLineNo">899</span>    filesGroup = cmd.getOptionValue(Options.CHGROUP.getLongOpt(), filesGroup);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>    filesMode = getOptionAsInt(cmd, Options.CHMOD.getLongOpt(), filesMode);<a name="line.900"></a>
+<span class="sourceLineNo">901</span>    bandwidthMB = getOptionAsInt(cmd, Options.BANDWIDTH.getLongOpt(), bandwidthMB);<a name="line.901"></a>
+<span class="sourceLineNo">902</span>    overwrite = cmd.hasOption(Options.OVERWRITE.getLongOpt());<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    // And verifyChecksum and verifyTarget with values read from old args in processOldArgs(...).<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    verifyChecksum = !cmd.hasOption(Options.NO_CHECKSUM_VERIFY.getLongOpt());<a name="line.904"></a>
+<span class="sourceLineNo">905</span>    verifyTarget = !cmd.hasOption(Options.NO_TARGET_VERIFY.getLongOpt());<a name="line.905"></a>
+<span class="sourceLineNo">906</span>  }<a name="line.906"></a>
+<span class="sourceLineNo">907</span><a name="line.907"></a>
+<span class="sourceLineNo">908</span>  /**<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   * Execute the export snapshot by copying the snapshot metadata, hfiles and wals.<a name="line.909"></a>
+<span class="sourceLineNo">910</span>   * @return 0 on success, and != 0 upon failure.<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>  @Override<a name="line.912"></a>
+<span class="sourceLineNo">913</span>  public int doWork() throws IOException {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    Configuration conf = getConf();<a name="line.914"></a>
+<span class="sourceLineNo">915</span><a name="line.915"></a>
+<span class="sourceLineNo">916</span>    // Check user options<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    if (snapshotName == null) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>      System.err.println("Snapshot name not provided.");<a name="line.918"></a>
+<span class="sourceLineNo">919</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.919"></a>
+<span class="sourceLineNo">920</span>      return 0;<a name="line.920"></a>
+<span class="sourceLineNo">921</span>    }<a name="line.921"></a>
+<span class="sourceLineNo">922</span><a name="line.922"></a>
+<span class="sourceLineNo">923</span>    if (outputRoot == null) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>      System.err.println("Destination file-system (--" + Options.COPY_TO.getLongOpt()<a name="line.924"></a>
+<span class="sourceLineNo">925</span>              + ") not provided.");<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      return 0;<a name="line.927"></a>
+<span class="sourceLineNo">928</span>    }<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>    if (targetName == null) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      targetName = snapshotName;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    if (inputRoot == null) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      inputRoot = FSUtils.getRootDir(conf);<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    } else {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>      FSUtils.setRootDir(conf, inputRoot);<a name="line.936"></a>
+<span class="sourceLineNo">937</span>    }<a name="line.937"></a>
+<span class="sourceLineNo">938</span><a name="line.938"></a>
+<span class="sourceLineNo">939</span>    Configuration srcConf = HBaseConfiguration.createClusterConf(conf, null, CONF_SOURCE_PREFIX);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    srcConf.setBoolean("fs." + inputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    FileSystem inputFs = FileSystem.get(inputRoot.toUri(), srcConf);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>    LOG.debug("inputFs=" + inputFs.getUri().toString() + " inputRoot=" + inputRoot);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>    Configuration destConf = HBaseConfiguration.createClusterConf(conf, null, CONF_DEST_PREFIX);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>    destConf.setBoolean("fs." + outputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>    FileSystem outputFs = FileSystem.get(outputRoot.toUri(), destConf);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    LOG.debug("outputFs=" + outputFs.getUri().toString() + " outputRoot=" + outputRoot.toString());<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>    boolean skipTmp = conf.getBoolean(CONF_SKIP_TMP, false);<a name="line.948"></a>
 <span class="sourceLineNo">949</span><a name="line.949"></a>
-<span class="sourceLineNo">950</span>    boolean skipTmp = conf.getBoolean(CONF_SKIP_TMP, false);<a name="line.950"></a>
-<span class="sourceLineNo">951</span><a name="line.951"></a>
-<span class="sourceLineNo">952</span>    Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshotName, inputRoot);<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    Path snapshotTmpDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(targetName, outputRoot);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    Path outputSnapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(targetName, outputRoot);<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    Path initialOutputSnapshotDir = skipTmp ? outputSnapshotDir : snapshotTmpDir;<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>    // Find the necessary directory which need to change owner and group<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    Path needSetOwnerDir = SnapshotDescriptionUtils.getSnapshotRootDir(outputRoot);<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    if (outputFs.exists(needSetOwnerDir)) {<a name="line.959"></a>
-<span class="sourceLineNo">960</span>      if (skipTmp) {<a name="line.960"></a>
-<span class="sourceLineNo">961</span>        needSetOwnerDir = outputSnapshotDir;<a name="line.961"></a>
-<span class="sourceLineNo">962</span>      } else {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>        needSetOwnerDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(outputRoot);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>        if (outputFs.exists(needSetOwnerDir)) {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>          needSetOwnerDir = snapshotTmpDir;<a name="line.965"></a>
-<span class="sourceLineNo">966</span>        }<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
-<span class="sourceLineNo">969</span><a name="line.969"></a>
-<span class="sourceLineNo">970</span>    // Check if the snapshot already exists<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (outputFs.exists(outputSnapshotDir)) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      if (overwrite) {<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        if (!outputFs.delete(outputSnapshotDir, true)) {<a name="line.973"></a>
-<span class="sourceLineNo">974</span>          System.err.println("Unable to remove existing snapshot directory: " + outputSnapshotDir);<a name="line.974"></a>
-<span class="sourceLineNo">975</span>          return 1;<a name="line.975"></a>
-<span class="sourceLineNo">976</span>        }<a name="line.976"></a>
-<span class="sourceLineNo">977</span>      } else {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>        System.err.println("The snapshot '" + targetName +<a name="line.978"></a>
-<span class="sourceLineNo">979</span>          "' already exists in the destination: " + outputSnapshotDir);<a name="line.979"></a>
-<span class="sourceLineNo">980</span>        return 1;<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      }<a name="line.981"></a>
-<span class="sourceLineNo">982</span>    }<a name="line.982"></a>
-<span class="sourceLineNo">983</span><a name="line.983"></a>
-<span class="sourceLineNo">984</span>    if (!skipTmp) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      // Check if the snapshot already in-progress<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      if (outputFs.exists(snapshotTmpDir)) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>        if (overwrite) {<a name="line.987"></a>
-<span class="sourceLineNo">988</span>          if (!outputFs.delete(snapshotTmpDir, true)) {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            System.err.println("Unable to remove existing snapshot tmp directory: "+snapshotTmpDir);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>            return 1;<a name="line.990"></a>
-<span class="sourceLineNo">991</span>          }<a name="line.991"></a>
-<span class="sourceLineNo">992</span>        } else {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>          System.err.println("A snapshot with the same name '"+ targetName +"' may be in-progress");<a name="line.993"></a>
-<span class="sourceLineNo">994</span>          System.err.println("Please check "+snapshotTmpDir+". If the snapshot has completed, ");<a name="line.994"></a>
-<span class="sourceLineNo">995</span>          System.err.println("consider removing "+snapshotTmpDir+" by using the -overwrite option");<a name="line.995"></a>
-<span class="sourceLineNo">996</span>          return 1;<a name="line.996"></a>
-<span class="sourceLineNo">997</span>        }<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      }<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span><a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // Step 1 - Copy fs1:/.snapshot/&lt;snapshot&gt; to  fs2:/.snapshot/.tmp/&lt;snapshot&gt;<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // The snapshot references must be copied before the hfiles otherwise the cleaner<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    // will remove them because they are unreferenced.<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      LOG.info("Copy Snapshot Manifest");<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      FileUtil.copy(inputFs, snapshotDir, outputFs, initialOutputSnapshotDir, false, false, conf);<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    } catch (IOException e) {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      throw new ExportSnapshotException("Failed to copy the snapshot directory: from=" +<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>        snapshotDir + " to=" + initialOutputSnapshotDir, e);<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    } finally {<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      if (filesUser != null || filesGroup != null) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        LOG.warn((filesUser == null ? "" : "Change the owner of " + needSetOwnerDir + " to "<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>            + filesUser)<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>            + (filesGroup == null ? "" : ", Change the group of " + needSetOwnerDir + " to "<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>            + filesGroup));<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        setOwner(outputFs, needSetOwnerDir, filesUser, filesGroup, true);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>      }<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      if (filesMode &gt; 0) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>        LOG.warn("Change the permission of " + needSetOwnerDir + " to " + filesMode);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        setPermission(outputFs, needSetOwnerDir, (short)filesMode, true);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    }<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span><a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    // Write a new .snapshotinfo if the target name is different from the source name<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    if (!targetName.equals(snapshotName)) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      SnapshotDescription snapshotDesc =<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>        SnapshotDescriptionUtils.readSnapshotInfo(inputFs, snapshotDir)<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>          .toBuilder()<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          .setName(targetName)<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>          .build();<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>      SnapshotDescriptionUtils.writeSnapshotInfo(snapshotDesc, initialOutputSnapshotDir, outputFs);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>      if (filesUser != null || filesGroup != null) {<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>        outputFs.setOwner(new Path(initialOutputSnapshotDir,<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), filesUser, filesGroup);<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>      }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>      if (filesMode &gt; 0) {<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>        outputFs.setPermission(new Path(initialOutputSnapshotDir,<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), new FsPermission((short)filesMode));<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>      }<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>    // Step 2 - Start MR Job to copy files<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    // The snapshot references must be copied before the files otherwise the files gets removed<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>    // by the HFileArchiver, since they have no references.<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>    try {<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>      runCopyJob(inputRoot, outputRoot, snapshotName, snapshotDir, verifyChecksum,<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>                 filesUser, filesGroup, filesMode, mappers, bandwidthMB);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span><a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      LOG.info("Finalize the Snapshot Export");<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>      if (!skipTmp) {<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>        // Step 3 - Rename fs2:/.snapshot/.tmp/&lt;snapshot&gt; fs2:/.snapshot/&lt;snapshot&gt;<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        if (!outputFs.rename(snapshotTmpDir, outputSnapshotDir)) {<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>          throw new ExportSnapshotException("Unable to rename snapshot directory from=" +<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>            snapshotTmpDir + " to=" + outputSnapshotDir);<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        }<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>      }<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span><a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>      // Step 4 - Verify snapshot integrity<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>      if (verifyTarget) {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>        LOG.info("Verify snapshot integrity");<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>        verifySnapshot(destConf, outputFs, outputRoot, outputSnapshotDir);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>      }<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span><a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>      LOG.info("Export Completed: " + targetName);<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>      return 0;<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>    } catch (Exception e) {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>      LOG.error("Snapshot export failed", e);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>      if (!skipTmp) {<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>        outputFs.delete(snapshotTmpDir, true);<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      }<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>      outputFs.delete(outputSnapshotDir, true);<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      return 1;<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    } finally {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      IOUtils.closeStream(inputFs);<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>      IOUtils.closeStream(outputFs);<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>    }<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>  @Override<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  protected void printUsage() {<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    super.printUsage();<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    System.out.println("\n"<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>        + "Examples:\n"<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        + "  hbase snapshot export \\\n"<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        + "    --snapshot MySnapshot --copy-to hdfs://srv2:8082/hbase \\\n"<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>        + "    --chuser MyUser --chgroup MyGroup --chmod 700 --mappers 16\n"<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        + "\n"<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>        + "  hbase snapshot export \\\n"<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>        + "    --snapshot MySnapshot --copy-from hdfs://srv2:8082/hbase \\\n"<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        + "    --copy-to hdfs://srv1:50070/hbase");<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>  @Override protected void addOptions() {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    addRequiredOption(Options.SNAPSHOT);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    addOption(Options.COPY_TO);<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>    addOption(Options.COPY_FROM);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    addOption(Options.TARGET_NAME);<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    addOption(Options.NO_CHECKSUM_VERIFY);<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>    addOption(Options.NO_TARGET_VERIFY);<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>    addOption(Options.OVERWRITE);<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    addOption(Options.CHUSER);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    addOption(Options.CHGROUP);<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    addOption(Options.CHMOD);<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    addOption(Options.MAPPERS);<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>    addOption(Options.BANDWIDTH);<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  }<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span><a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>  public static void main(String[] args) {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    new ExportSnapshot().doStaticMain(args);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>  }<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>}<a name="line.1111"></a>
+<span class="sourceLineNo">950</span>    Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshotName, inputRoot);<a name="line.950"></a>
+<span class="sourceLineNo">951</span>    Path snapshotTmpDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(targetName, outputRoot);<a name="line.951"></a>
+<span class="sourceLineNo">952</span>    Path outputSnapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(targetName, outputRoot);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>    Path initialOutputSnapshotDir = skipTmp ? outputSnapshotDir : snapshotTmpDir;<a name="line.953"></a>
+<span class="sourceLineNo">954</span><a name="line.954"></a>
+<span class="sourceLineNo">955</span>    // Find the necessary directory which need to change owner and group<a name="line.955"></a>
+<span class="sourceLineNo">956</span>    Path needSetOwnerDir = SnapshotDescriptionUtils.getSnapshotRootDir(outputRoot);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    if (outputFs.exists(needSetOwnerDir)) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>      if (skipTmp) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        needSetOwnerDir = outputSnapshotDir;<a name="line.959"></a>
+<span class="sourceLineNo">960</span>      } else {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        needSetOwnerDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(outputRoot);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>        if (outputFs.exists(needSetOwnerDir)) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>          needSetOwnerDir = snapshotTmpDir;<a name="line.963"></a>
+<span class="sourceLineNo">964</span>        }<a name="line.964"></a>
+<span class="sourceLineNo">965</span>      }<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    }<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>    // Check if the snapshot already exists<a name="line.968"></a>
+<span class="sourceLineNo">969</span>    if (outputFs.exists(outputSnapshotDir)) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>      if (overwrite) {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>        if (!outputFs.delete(outputSnapshotDir, true)) {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>          System.err.println("Unable to remove existing snapshot directory: " + outputSnapshotDir);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>          return 1;<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>      } else {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>        System.err.println("The snapshot '" + targetName +<a name="line.976"></a>
+<span class="sourceLineNo">977</span>          "' already exists in the destination: " + outputSnapshotDir);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        return 1;<a name="line.978"></a>
+<span class="sourceLineNo">979</span>      }<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    if (!skipTmp) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>      // Check if the snapshot already in-progress<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      if (outputFs.exists(snapshotTmpDir)) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>        if (overwrite) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>          if (!outputFs.delete(snapshotTmpDir, true)) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>            System.err.println("Unable to remove existing snapshot tmp directory: "+snapshotTmpDir);<a name="line.987"></a>
+<span class="sourceLineNo">988</span>            return 1;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>          }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>        } else {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>          System.err.println("A snapshot with the same name '"+ targetName +"' may be in-progress");<a name="line.991"></a>
+<span class="sourceLineNo">992</span>          System.err.println("Please check "+snapshotTmpDir+". If the snapshot has completed, ");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>          System.err.println("consider removing "+snapshotTmpDir+" by using the -overwrite option");<a name="line.993"></a>
+<span class="sourceLineNo">994</span>          return 1;<a name="line.994"></a>
+<span class="sourceLineNo">995</span>        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>      }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    }<a name="line.997"></a>
+<span class="sourceLineNo">998</span><a name="line.998"></a>
+<span class="sourceLineNo">999</span>    // Step 1 - Copy fs1:/.snapshot/&lt;snapshot&gt; to  fs2:/.snapshot/.tmp/&lt;snapshot&gt;<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    // The snapshot references must be copied before the hfiles otherwise the cleaner<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    // will remove them because they are unreferenced.<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>    try {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>      LOG.info("Copy Snapshot Manifest");<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      FileUtil.copy(inputFs, snapshotDir, outputFs, initialOutputSnapshotDir, false, false, conf);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    } catch (IOException e) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      throw new ExportSnapshotException("Failed to copy the snapshot directory: from=" +<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        snapshotDir + " to=" + initialOutputSnapshotDir, e);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    } finally {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      if (filesUser != null || filesGroup != null) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>        LOG.warn((filesUser == null ? "" : "Change the owner of " + needSetOwnerDir + " to "<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>            + filesUser)<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>            + (filesGroup == null ? "" : ", Change the group of " + needSetOwnerDir + " to "<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>            + filesGroup));<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        setOwner(outputFs, needSetOwnerDir, filesUser, filesGroup, true);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>      }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      if (filesMode &gt; 0) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>        LOG.warn("Change the permission of " + needSetOwnerDir + " to " + filesMode);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        setPermission(outputFs, needSetOwnerDir, (short)filesMode, true);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>      }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    }<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span><a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>    // Write a new .snapshotinfo if the target name is different from the source name<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>    if (!targetName.equals(snapshotName)) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>      SnapshotDescription snapshotDesc =<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>        SnapshotDescriptionUtils.readSnapshotInfo(inputFs, snapshotDir)<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>          .toBuilder()<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>          .setName(targetName)<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>          .build();<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      SnapshotDescriptionUtils.writeSnapshotInfo(snapshotDesc, initialOutputSnapshotDir, outputFs);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      if (filesUser != null || filesGroup != null) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        outputFs.setOwner(new Path(initialOutputSnapshotDir,<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), filesUser, filesGroup);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>      }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>      if (filesMode &gt; 0) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        outputFs.setPermission(new Path(initialOutputSnapshotDir,<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), new FsPermission((short)filesMode));<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>      }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>    }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>    // Step 2 - Start MR Job to copy files<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>    // The snapshot references must be copied before the files otherwise the files gets removed<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>    // by the HFileArchiver, since they have no references.<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>    try {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>      runCopyJob(inputRoot, outputRoot, snapshotName, snapshotDir, verifyChecksum,<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                 filesUser, filesGroup, filesMode, mappers, bandwidthMB);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span><a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>      LOG.info("Finalize the Snapshot Export");<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      if (!skipTmp) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        // Step 3 - Rename fs2:/.snapshot/.tmp/&lt;snapshot&gt; fs2:/.snapshot/&lt;snapshot&gt;<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        if (!outputFs.rename(snapshotTmpDir, outputSnapshotDir)) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>          throw new ExportSnapshotException("Unable to rename snapshot directory from=" +<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>            snapshotTmpDir + " to=" + outputSnapshotDir);<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span><a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>      // Step 4 - Verify snapshot integrity<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      if (verifyTarget) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        LOG.info("Verify snapshot integrity");<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        verifySnapshot(destConf, outputFs, outputRoot, outputSnapshotDir);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>      }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      LOG.info("Export Completed: " + targetName);<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      return 0;<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>    } catch (Exception e) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>      LOG.error("Snapshot export failed", e);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      if (!skipTmp) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        outputFs.delete(snapshotTmpDir, true);<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      }<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      outputFs.delete(outputSnapshotDir, true);<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      return 1;<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>    } finally {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      IOUtils.closeStream(inputFs);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>      IOUtils.closeStream(outputFs);<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    }<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  @Override<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>  protected void printUsage() {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    super.printUsage();<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    System.out.println("\n"<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        + "Examples:\n"<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>        + "  hbase snapshot export \\\n"<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>        + "    --snapshot MySnapshot --copy-to hdfs://srv2:8082/hbase \\\n"<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        + "    --chuser MyUser --chgroup MyGroup --chmod 700 --mappers 16\n"<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>        + "\n"<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>        + "  hbase snapshot export \\\n"<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>        + "    --snapshot MySnapshot --copy-from hdfs://srv2:8082/hbase \\\n"<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        + "    --copy-to hdfs://srv1:50070/hbase");<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>  @Override protected void addOptions() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    addRequiredOption(Options.SNAPSHOT);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    addOption(Options.COPY_TO);<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>    addOption(Options.COPY_FROM);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>    addOption(Options.TARGET_NAME);<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>    addOption(Options.NO_CHECKSUM_VERIFY);<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>    addOption(Options.NO_TARGET_VERIFY);<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>    addOption(Options.OVERWRITE);<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>    addOption(Options.CHUSER);<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>    addOption(Options.CHGROUP);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>    addOption(Options.CHMOD);<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>    addOption(Options.MAPPERS);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    addOption(Options.BANDWIDTH);<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>  }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span><a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>  public static void main(String[] args) {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    new ExportSnapshot().doStaticMain(args);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  }<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>}<a name="line.1109"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/export_control.html
----------------------------------------------------------------------
diff --git a/export_control.html b/export_control.html
index 7523db6..3003755 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Export Control
@@ -336,7 +336,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: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependencies.html b/hbase-build-configuration/dependencies.html
index 078d6d8..add80e4 100644
--- a/hbase-build-configuration/dependencies.html
+++ b/hbase-build-configuration/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -272,7 +272,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependency-convergence.html b/hbase-build-configuration/dependency-convergence.html
index 668a54c..13947d7 100644
--- a/hbase-build-configuration/dependency-convergence.html
+++ b/hbase-build-configuration/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
 <td>304</td></tr>
 <tr class="b">
 <th>Number of unique artifacts (NOA):</th>
-<td>329</td></tr>
+<td>330</td></tr>
 <tr class="a">
 <th>Number of version-conflicting artifacts (NOC):</th>
 <td>17</td></tr>
@@ -423,7 +423,7 @@
 <li>org.apache.hbase:hbase-endpoint:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-
 media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-examples:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-
 media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-external-blockcache:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.me
 dia:jersey-media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
-<li>org.apache.hbase:hbase-it:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-
 jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
+<li>org.apache.hbase:hbase-it:jar:3.0.0-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />|&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />\-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;\-&#16
 0;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br /></li><br />
 <li>org.apache.hbase:hbase-mapreduce:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey
 -media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-rest:jar:3.0.0-SNAPSHOT<br />\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-rsgroup:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-m
 edia-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
@@ -615,7 +615,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependency-info.html b/hbase-build-configuration/dependency-info.html
index d960763..fcadbb9 100644
--- a/hbase-build-configuration/dependency-info.html
+++ b/hbase-build-configuration/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependency-management.html b/hbase-build-configuration/dependency-management.html
index 49442f9..9df535d 100644
--- a/hbase-build-configuration/dependency-management.html
+++ b/hbase-build-configuration/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -585,30 +585,36 @@
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
 <tr class="b">
+<td>org.glassfish.web</td>
+<td><a class="externalLink" href="http://jsp.java.net">javax.servlet.jsp</a></td>
+<td>2.3.2</td>
+<td>jar</td>
+<td><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
+<tr class="a">
 <td>org.jamon</td>
 <td><a class="externalLink" href="http://www.jamon.org/jamon-java-parent/jamon-runtime/">jamon-runtime</a></td>
 <td>2.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/2.0">Mozilla Public License Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby</td>
 <td><a class="externalLink" href="https://github.com/jruby/jruby/jruby-artifacts/jruby-complete">jruby-complete</a></td>
 <td>9.1.10.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.gnu.org/licenses/gpl-2.0-standalone.html">GPL 2</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1-standalone.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">EPL</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
 <td>1.7.24</td>
@@ -760,7 +766,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-annotations/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-annotations/checkstyle.html b/hbase-build-configuration/hbase-annotations/checkstyle.html
index 8489cfa..7812575 100644
--- a/hbase-build-configuration/hbase-annotations/checkstyle.html
+++ b/hbase-build-configuration/hbase-annotations/checkstyle.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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -273,7 +273,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-annotations/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-annotations/dependencies.html b/hbase-build-configuration/hbase-annotations/dependencies.html
index a86f6de..29da1ad 100644
--- a/hbase-build-configuration/hbase-annotations/dependencies.html
+++ b/hbase-build-configuration/hbase-annotations/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -295,7 +295,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportSnapshotInputFormat.ExportSnapshotInputSplit.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportSnapshotInputFormat.ExportSnapshotInputSplit.html b/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportSnapshotInputFormat.ExportSnapshotInputSplit.html
index a73c866..dd2d739 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportSnapshotInputFormat.ExportSnapshotInputSplit.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportSnapshotInputFormat.ExportSnapshotInputSplit.html
@@ -834,289 +834,287 @@
 <span class="sourceLineNo">826</span><a name="line.826"></a>
 <span class="sourceLineNo">827</span>    // Run the MR Job<a name="line.827"></a>
 <span class="sourceLineNo">828</span>    if (!job.waitForCompletion(true)) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>      // TODO: Replace the fixed string with job.getStatus().getFailureInfo()<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      // when it will be available on all the supported versions.<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      throw new ExportSnapshotException("Copy Files Map-Reduce Job failed");<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    }<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  }<a name="line.833"></a>
-<span class="sourceLineNo">834</span><a name="line.834"></a>
-<span class="sourceLineNo">835</span>  private void verifySnapshot(final Configuration baseConf,<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      final FileSystem fs, final Path rootDir, final Path snapshotDir) throws IOException {<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    // Update the conf with the current root dir, since may be a different cluster<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    Configuration conf = new Configuration(baseConf);<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    FSUtils.setRootDir(conf, rootDir);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    FSUtils.setFsDefault(conf, FSUtils.getRootDir(conf));<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    SnapshotDescription snapshotDesc = SnapshotDescriptionUtils.readSnapshotInfo(fs, snapshotDir);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    SnapshotReferenceUtil.verifySnapshot(conf, fs, snapshotDir, snapshotDesc);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>  }<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>   * Set path ownership.<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   */<a name="line.847"></a>
-<span class="sourceLineNo">848</span>  private void setOwner(final FileSystem fs, final Path path, final String user,<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      final String group, final boolean recursive) throws IOException {<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    if (user != null || group != null) {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.851"></a>
-<span class="sourceLineNo">852</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          setOwner(fs, child.getPath(), user, group, recursive);<a name="line.853"></a>
-<span class="sourceLineNo">854</span>        }<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      }<a name="line.855"></a>
-<span class="sourceLineNo">856</span>      fs.setOwner(path, user, group);<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    }<a name="line.857"></a>
-<span class="sourceLineNo">858</span>  }<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>  /**<a name="line.860"></a>
-<span class="sourceLineNo">861</span>   * Set path permission.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   */<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  private void setPermission(final FileSystem fs, final Path path, final short filesMode,<a name="line.863"></a>
-<span class="sourceLineNo">864</span>      final boolean recursive) throws IOException {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (filesMode &gt; 0) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      FsPermission perm = new FsPermission(filesMode);<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>          setPermission(fs, child.getPath(), filesMode, recursive);<a name="line.869"></a>
-<span class="sourceLineNo">870</span>        }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      fs.setPermission(path, perm);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>    }<a name="line.873"></a>
-<span class="sourceLineNo">874</span>  }<a name="line.874"></a>
-<span class="sourceLineNo">875</span><a name="line.875"></a>
-<span class="sourceLineNo">876</span>  private boolean verifyTarget = true;<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  private boolean verifyChecksum = true;<a name="line.877"></a>
-<span class="sourceLineNo">878</span>  private String snapshotName = null;<a name="line.878"></a>
-<span class="sourceLineNo">879</span>  private String targetName = null;<a name="line.879"></a>
-<span class="sourceLineNo">880</span>  private boolean overwrite = false;<a name="line.880"></a>
-<span class="sourceLineNo">881</span>  private String filesGroup = null;<a name="line.881"></a>
-<span class="sourceLineNo">882</span>  private String filesUser = null;<a name="line.882"></a>
-<span class="sourceLineNo">883</span>  private Path outputRoot = null;<a name="line.883"></a>
-<span class="sourceLineNo">884</span>  private Path inputRoot = null;<a name="line.884"></a>
-<span class="sourceLineNo">885</span>  private int bandwidthMB = Integer.MAX_VALUE;<a name="line.885"></a>
-<span class="sourceLineNo">886</span>  private int filesMode = 0;<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  private int mappers = 0;<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  @Override<a name="line.889"></a>
-<span class="sourceLineNo">890</span>  protected void processOptions(CommandLine cmd) {<a name="line.890"></a>
-<span class="sourceLineNo">891</span>    snapshotName = cmd.getOptionValue(Options.SNAPSHOT.getLongOpt(), snapshotName);<a name="line.891"></a>
-<span class="sourceLineNo">892</span>    targetName = cmd.getOptionValue(Options.TARGET_NAME.getLongOpt(), targetName);<a name="line.892"></a>
-<span class="sourceLineNo">893</span>    if (cmd.hasOption(Options.COPY_TO.getLongOpt())) {<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      outputRoot = new Path(cmd.getOptionValue(Options.COPY_TO.getLongOpt()));<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    if (cmd.hasOption(Options.COPY_FROM.getLongOpt())) {<a name="line.896"></a>
-<span class="sourceLineNo">897</span>      inputRoot = new Path(cmd.getOptionValue(Options.COPY_FROM.getLongOpt()));<a name="line.897"></a>
-<span class="sourceLineNo">898</span>    }<a name="line.898"></a>
-<span class="sourceLineNo">899</span>    mappers = getOptionAsInt(cmd, Options.MAPPERS.getLongOpt(), mappers);<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    filesUser = cmd.getOptionValue(Options.CHUSER.getLongOpt(), filesUser);<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    filesGroup = cmd.getOptionValue(Options.CHGROUP.getLongOpt(), filesGroup);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>    filesMode = getOptionAsInt(cmd, Options.CHMOD.getLongOpt(), filesMode);<a name="line.902"></a>
-<span class="sourceLineNo">903</span>    bandwidthMB = getOptionAsInt(cmd, Options.BANDWIDTH.getLongOpt(), bandwidthMB);<a name="line.903"></a>
-<span class="sourceLineNo">904</span>    overwrite = cmd.hasOption(Options.OVERWRITE.getLongOpt());<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    // And verifyChecksum and verifyTarget with values read from old args in processOldArgs(...).<a name="line.905"></a>
-<span class="sourceLineNo">906</span>    verifyChecksum = !cmd.hasOption(Options.NO_CHECKSUM_VERIFY.getLongOpt());<a name="line.906"></a>
-<span class="sourceLineNo">907</span>    verifyTarget = !cmd.hasOption(Options.NO_TARGET_VERIFY.getLongOpt());<a name="line.907"></a>
-<span class="sourceLineNo">908</span>  }<a name="line.908"></a>
-<span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>  /**<a name="line.910"></a>
-<span class="sourceLineNo">911</span>   * Execute the export snapshot by copying the snapshot metadata, hfiles and wals.<a name="line.911"></a>
-<span class="sourceLineNo">912</span>   * @return 0 on success, and != 0 upon failure.<a name="line.912"></a>
-<span class="sourceLineNo">913</span>   */<a name="line.913"></a>
-<span class="sourceLineNo">914</span>  @Override<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  public int doWork() throws IOException {<a name="line.915"></a>
-<span class="sourceLineNo">916</span>    Configuration conf = getConf();<a name="line.916"></a>
-<span class="sourceLineNo">917</span><a name="line.917"></a>
-<span class="sourceLineNo">918</span>    // Check user options<a name="line.918"></a>
-<span class="sourceLineNo">919</span>    if (snapshotName == null) {<a name="line.919"></a>
-<span class="sourceLineNo">920</span>      System.err.println("Snapshot name not provided.");<a name="line.920"></a>
-<span class="sourceLineNo">921</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      return 0;<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    }<a name="line.923"></a>
-<span class="sourceLineNo">924</span><a name="line.924"></a>
-<span class="sourceLineNo">925</span>    if (outputRoot == null) {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>      System.err.println("Destination file-system (--" + Options.COPY_TO.getLongOpt()<a name="line.926"></a>
-<span class="sourceLineNo">927</span>              + ") not provided.");<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      return 0;<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    }<a name="line.930"></a>
-<span class="sourceLineNo">931</span><a name="line.931"></a>
-<span class="sourceLineNo">932</span>    if (targetName == null) {<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      targetName = snapshotName;<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    }<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    if (inputRoot == null) {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>      inputRoot = FSUtils.getRootDir(conf);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    } else {<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      FSUtils.setRootDir(conf, inputRoot);<a name="line.938"></a>
-<span class="sourceLineNo">939</span>    }<a name="line.939"></a>
-<span class="sourceLineNo">940</span><a name="line.940"></a>
-<span class="sourceLineNo">941</span>    Configuration srcConf = HBaseConfiguration.createClusterConf(conf, null, CONF_SOURCE_PREFIX);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>    srcConf.setBoolean("fs." + inputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    FileSystem inputFs = FileSystem.get(inputRoot.toUri(), srcConf);<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    LOG.debug("inputFs=" + inputFs.getUri().toString() + " inputRoot=" + inputRoot);<a name="line.944"></a>
-<span class="sourceLineNo">945</span>    Configuration destConf = HBaseConfiguration.createClusterConf(conf, null, CONF_DEST_PREFIX);<a name="line.945"></a>
-<span class="sourceLineNo">946</span>    destConf.setBoolean("fs." + outputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.946"></a>
-<span class="sourceLineNo">947</span>    FileSystem outputFs = FileSystem.get(outputRoot.toUri(), destConf);<a name="line.947"></a>
-<span class="sourceLineNo">948</span>    LOG.debug("outputFs=" + outputFs.getUri().toString() + " outputRoot=" + outputRoot.toString());<a name="line.948"></a>
+<span class="sourceLineNo">829</span>      throw new ExportSnapshotException(job.getStatus().getFailureInfo());<a name="line.829"></a>
+<span class="sourceLineNo">830</span>    }<a name="line.830"></a>
+<span class="sourceLineNo">831</span>  }<a name="line.831"></a>
+<span class="sourceLineNo">832</span><a name="line.832"></a>
+<span class="sourceLineNo">833</span>  private void verifySnapshot(final Configuration baseConf,<a name="line.833"></a>
+<span class="sourceLineNo">834</span>      final FileSystem fs, final Path rootDir, final Path snapshotDir) throws IOException {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    // Update the conf with the current root dir, since may be a different cluster<a name="line.835"></a>
+<span class="sourceLineNo">836</span>    Configuration conf = new Configuration(baseConf);<a name="line.836"></a>
+<span class="sourceLineNo">837</span>    FSUtils.setRootDir(conf, rootDir);<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    FSUtils.setFsDefault(conf, FSUtils.getRootDir(conf));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>    SnapshotDescription snapshotDesc = SnapshotDescriptionUtils.readSnapshotInfo(fs, snapshotDir);<a name="line.839"></a>
+<span class="sourceLineNo">840</span>    SnapshotReferenceUtil.verifySnapshot(conf, fs, snapshotDir, snapshotDesc);<a name="line.840"></a>
+<span class="sourceLineNo">841</span>  }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>  /**<a name="line.843"></a>
+<span class="sourceLineNo">844</span>   * Set path ownership.<a name="line.844"></a>
+<span class="sourceLineNo">845</span>   */<a name="line.845"></a>
+<span class="sourceLineNo">846</span>  private void setOwner(final FileSystem fs, final Path path, final String user,<a name="line.846"></a>
+<span class="sourceLineNo">847</span>      final String group, final boolean recursive) throws IOException {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    if (user != null || group != null) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>          setOwner(fs, child.getPath(), user, group, recursive);<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span>      }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>      fs.setOwner(path, user, group);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>    }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>  }<a name="line.856"></a>
+<span class="sourceLineNo">857</span><a name="line.857"></a>
+<span class="sourceLineNo">858</span>  /**<a name="line.858"></a>
+<span class="sourceLineNo">859</span>   * Set path permission.<a name="line.859"></a>
+<span class="sourceLineNo">860</span>   */<a name="line.860"></a>
+<span class="sourceLineNo">861</span>  private void setPermission(final FileSystem fs, final Path path, final short filesMode,<a name="line.861"></a>
+<span class="sourceLineNo">862</span>      final boolean recursive) throws IOException {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>    if (filesMode &gt; 0) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>      FsPermission perm = new FsPermission(filesMode);<a name="line.864"></a>
+<span class="sourceLineNo">865</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>          setPermission(fs, child.getPath(), filesMode, recursive);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>        }<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>      fs.setPermission(path, perm);<a name="line.870"></a>
+<span class="sourceLineNo">871</span>    }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>  }<a name="line.872"></a>
+<span class="sourceLineNo">873</span><a name="line.873"></a>
+<span class="sourceLineNo">874</span>  private boolean verifyTarget = true;<a name="line.874"></a>
+<span class="sourceLineNo">875</span>  private boolean verifyChecksum = true;<a name="line.875"></a>
+<span class="sourceLineNo">876</span>  private String snapshotName = null;<a name="line.876"></a>
+<span class="sourceLineNo">877</span>  private String targetName = null;<a name="line.877"></a>
+<span class="sourceLineNo">878</span>  private boolean overwrite = false;<a name="line.878"></a>
+<span class="sourceLineNo">879</span>  private String filesGroup = null;<a name="line.879"></a>
+<span class="sourceLineNo">880</span>  private String filesUser = null;<a name="line.880"></a>
+<span class="sourceLineNo">881</span>  private Path outputRoot = null;<a name="line.881"></a>
+<span class="sourceLineNo">882</span>  private Path inputRoot = null;<a name="line.882"></a>
+<span class="sourceLineNo">883</span>  private int bandwidthMB = Integer.MAX_VALUE;<a name="line.883"></a>
+<span class="sourceLineNo">884</span>  private int filesMode = 0;<a name="line.884"></a>
+<span class="sourceLineNo">885</span>  private int mappers = 0;<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>  @Override<a name="line.887"></a>
+<span class="sourceLineNo">888</span>  protected void processOptions(CommandLine cmd) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    snapshotName = cmd.getOptionValue(Options.SNAPSHOT.getLongOpt(), snapshotName);<a name="line.889"></a>
+<span class="sourceLineNo">890</span>    targetName = cmd.getOptionValue(Options.TARGET_NAME.getLongOpt(), targetName);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>    if (cmd.hasOption(Options.COPY_TO.getLongOpt())) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>      outputRoot = new Path(cmd.getOptionValue(Options.COPY_TO.getLongOpt()));<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    }<a name="line.893"></a>
+<span class="sourceLineNo">894</span>    if (cmd.hasOption(Options.COPY_FROM.getLongOpt())) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>      inputRoot = new Path(cmd.getOptionValue(Options.COPY_FROM.getLongOpt()));<a name="line.895"></a>
+<span class="sourceLineNo">896</span>    }<a name="line.896"></a>
+<span class="sourceLineNo">897</span>    mappers = getOptionAsInt(cmd, Options.MAPPERS.getLongOpt(), mappers);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    filesUser = cmd.getOptionValue(Options.CHUSER.getLongOpt(), filesUser);<a name="line.898"></a>
+<span class="sourceLineNo">899</span>    filesGroup = cmd.getOptionValue(Options.CHGROUP.getLongOpt(), filesGroup);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>    filesMode = getOptionAsInt(cmd, Options.CHMOD.getLongOpt(), filesMode);<a name="line.900"></a>
+<span class="sourceLineNo">901</span>    bandwidthMB = getOptionAsInt(cmd, Options.BANDWIDTH.getLongOpt(), bandwidthMB);<a name="line.901"></a>
+<span class="sourceLineNo">902</span>    overwrite = cmd.hasOption(Options.OVERWRITE.getLongOpt());<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    // And verifyChecksum and verifyTarget with values read from old args in processOldArgs(...).<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    verifyChecksum = !cmd.hasOption(Options.NO_CHECKSUM_VERIFY.getLongOpt());<a name="line.904"></a>
+<span class="sourceLineNo">905</span>    verifyTarget = !cmd.hasOption(Options.NO_TARGET_VERIFY.getLongOpt());<a name="line.905"></a>
+<span class="sourceLineNo">906</span>  }<a name="line.906"></a>
+<span class="sourceLineNo">907</span><a name="line.907"></a>
+<span class="sourceLineNo">908</span>  /**<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   * Execute the export snapshot by copying the snapshot metadata, hfiles and wals.<a name="line.909"></a>
+<span class="sourceLineNo">910</span>   * @return 0 on success, and != 0 upon failure.<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>  @Override<a name="line.912"></a>
+<span class="sourceLineNo">913</span>  public int doWork() throws IOException {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    Configuration conf = getConf();<a name="line.914"></a>
+<span class="sourceLineNo">915</span><a name="line.915"></a>
+<span class="sourceLineNo">916</span>    // Check user options<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    if (snapshotName == null) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>      System.err.println("Snapshot name not provided.");<a name="line.918"></a>
+<span class="sourceLineNo">919</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.919"></a>
+<span class="sourceLineNo">920</span>      return 0;<a name="line.920"></a>
+<span class="sourceLineNo">921</span>    }<a name="line.921"></a>
+<span class="sourceLineNo">922</span><a name="line.922"></a>
+<span class="sourceLineNo">923</span>    if (outputRoot == null) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>      System.err.println("Destination file-system (--" + Options.COPY_TO.getLongOpt()<a name="line.924"></a>
+<span class="sourceLineNo">925</span>              + ") not provided.");<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      return 0;<a name="line.927"></a>
+<span class="sourceLineNo">928</span>    }<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>    if (targetName == null) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      targetName = snapshotName;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    if (inputRoot == null) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      inputRoot = FSUtils.getRootDir(conf);<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    } else {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>      FSUtils.setRootDir(conf, inputRoot);<a name="line.936"></a>
+<span class="sourceLineNo">937</span>    }<a name="line.937"></a>
+<span class="sourceLineNo">938</span><a name="line.938"></a>
+<span class="sourceLineNo">939</span>    Configuration srcConf = HBaseConfiguration.createClusterConf(conf, null, CONF_SOURCE_PREFIX);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    srcConf.setBoolean("fs." + inputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    FileSystem inputFs = FileSystem.get(inputRoot.toUri(), srcConf);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>    LOG.debug("inputFs=" + inputFs.getUri().toString() + " inputRoot=" + inputRoot);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>    Configuration destConf = HBaseConfiguration.createClusterConf(conf, null, CONF_DEST_PREFIX);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>    destConf.setBoolean("fs." + outputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>    FileSystem outputFs = FileSystem.get(outputRoot.toUri(), destConf);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    LOG.debug("outputFs=" + outputFs.getUri().toString() + " outputRoot=" + outputRoot.toString());<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>    boolean skipTmp = conf.getBoolean(CONF_SKIP_TMP, false);<a name="line.948"></a>
 <span class="sourceLineNo">949</span><a name="line.949"></a>
-<span class="sourceLineNo">950</span>    boolean skipTmp = conf.getBoolean(CONF_SKIP_TMP, false);<a name="line.950"></a>
-<span class="sourceLineNo">951</span><a name="line.951"></a>
-<span class="sourceLineNo">952</span>    Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshotName, inputRoot);<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    Path snapshotTmpDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(targetName, outputRoot);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    Path outputSnapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(targetName, outputRoot);<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    Path initialOutputSnapshotDir = skipTmp ? outputSnapshotDir : snapshotTmpDir;<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>    // Find the necessary directory which need to change owner and group<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    Path needSetOwnerDir = SnapshotDescriptionUtils.getSnapshotRootDir(outputRoot);<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    if (outputFs.exists(needSetOwnerDir)) {<a name="line.959"></a>
-<span class="sourceLineNo">960</span>      if (skipTmp) {<a name="line.960"></a>
-<span class="sourceLineNo">961</span>        needSetOwnerDir = outputSnapshotDir;<a name="line.961"></a>
-<span class="sourceLineNo">962</span>      } else {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>        needSetOwnerDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(outputRoot);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>        if (outputFs.exists(needSetOwnerDir)) {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>          needSetOwnerDir = snapshotTmpDir;<a name="line.965"></a>
-<span class="sourceLineNo">966</span>        }<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
-<span class="sourceLineNo">969</span><a name="line.969"></a>
-<span class="sourceLineNo">970</span>    // Check if the snapshot already exists<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (outputFs.exists(outputSnapshotDir)) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      if (overwrite) {<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        if (!outputFs.delete(outputSnapshotDir, true)) {<a name="line.973"></a>
-<span class="sourceLineNo">974</span>          System.err.println("Unable to remove existing snapshot directory: " + outputSnapshotDir);<a name="line.974"></a>
-<span class="sourceLineNo">975</span>          return 1;<a name="line.975"></a>
-<span class="sourceLineNo">976</span>        }<a name="line.976"></a>
-<span class="sourceLineNo">977</span>      } else {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>        System.err.println("The snapshot '" + targetName +<a name="line.978"></a>
-<span class="sourceLineNo">979</span>          "' already exists in the destination: " + outputSnapshotDir);<a name="line.979"></a>
-<span class="sourceLineNo">980</span>        return 1;<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      }<a name="line.981"></a>
-<span class="sourceLineNo">982</span>    }<a name="line.982"></a>
-<span class="sourceLineNo">983</span><a name="line.983"></a>
-<span class="sourceLineNo">984</span>    if (!skipTmp) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      // Check if the snapshot already in-progress<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      if (outputFs.exists(snapshotTmpDir)) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>        if (overwrite) {<a name="line.987"></a>
-<span class="sourceLineNo">988</span>          if (!outputFs.delete(snapshotTmpDir, true)) {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            System.err.println("Unable to remove existing snapshot tmp directory: "+snapshotTmpDir);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>            return 1;<a name="line.990"></a>
-<span class="sourceLineNo">991</span>          }<a name="line.991"></a>
-<span class="sourceLineNo">992</span>        } else {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>          System.err.println("A snapshot with the same name '"+ targetName +"' may be in-progress");<a name="line.993"></a>
-<span class="sourceLineNo">994</span>          System.err.println("Please check "+snapshotTmpDir+". If the snapshot has completed, ");<a name="line.994"></a>
-<span class="sourceLineNo">995</span>          System.err.println("consider removing "+snapshotTmpDir+" by using the -overwrite option");<a name="line.995"></a>
-<span class="sourceLineNo">996</span>          return 1;<a name="line.996"></a>
-<span class="sourceLineNo">997</span>        }<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      }<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span><a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // Step 1 - Copy fs1:/.snapshot/&lt;snapshot&gt; to  fs2:/.snapshot/.tmp/&lt;snapshot&gt;<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // The snapshot references must be copied before the hfiles otherwise the cleaner<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    // will remove them because they are unreferenced.<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      LOG.info("Copy Snapshot Manifest");<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      FileUtil.copy(inputFs, snapshotDir, outputFs, initialOutputSnapshotDir, false, false, conf);<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    } catch (IOException e) {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      throw new ExportSnapshotException("Failed to copy the snapshot directory: from=" +<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>        snapshotDir + " to=" + initialOutputSnapshotDir, e);<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    } finally {<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      if (filesUser != null || filesGroup != null) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        LOG.warn((filesUser == null ? "" : "Change the owner of " + needSetOwnerDir + " to "<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>            + filesUser)<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>            + (filesGroup == null ? "" : ", Change the group of " + needSetOwnerDir + " to "<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>            + filesGroup));<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        setOwner(outputFs, needSetOwnerDir, filesUser, filesGroup, true);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>      }<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      if (filesMode &gt; 0) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>        LOG.warn("Change the permission of " + needSetOwnerDir + " to " + filesMode);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        setPermission(outputFs, needSetOwnerDir, (short)filesMode, true);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    }<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span><a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    // Write a new .snapshotinfo if the target name is different from the source name<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    if (!targetName.equals(snapshotName)) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      SnapshotDescription snapshotDesc =<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>        SnapshotDescriptionUtils.readSnapshotInfo(inputFs, snapshotDir)<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>          .toBuilder()<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          .setName(targetName)<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>          .build();<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>      SnapshotDescriptionUtils.writeSnapshotInfo(snapshotDesc, initialOutputSnapshotDir, outputFs);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>      if (filesUser != null || filesGroup != null) {<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>        outputFs.setOwner(new Path(initialOutputSnapshotDir,<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), filesUser, filesGroup);<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>      }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>      if (filesMode &gt; 0) {<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>        outputFs.setPermission(new Path(initialOutputSnapshotDir,<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), new FsPermission((short)filesMode));<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>      }<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>    // Step 2 - Start MR Job to copy files<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    // The snapshot references must be copied before the files otherwise the files gets removed<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>    // by the HFileArchiver, since they have no references.<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>    try {<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>      runCopyJob(inputRoot, outputRoot, snapshotName, snapshotDir, verifyChecksum,<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>                 filesUser, filesGroup, filesMode, mappers, bandwidthMB);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span><a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      LOG.info("Finalize the Snapshot Export");<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>      if (!skipTmp) {<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>        // Step 3 - Rename fs2:/.snapshot/.tmp/&lt;snapshot&gt; fs2:/.snapshot/&lt;snapshot&gt;<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        if (!outputFs.rename(snapshotTmpDir, outputSnapshotDir)) {<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>          throw new ExportSnapshotException("Unable to rename snapshot directory from=" +<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>            snapshotTmpDir + " to=" + outputSnapshotDir);<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        }<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>      }<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span><a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>      // Step 4 - Verify snapshot integrity<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>      if (verifyTarget) {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>        LOG.info("Verify snapshot integrity");<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>        verifySnapshot(destConf, outputFs, outputRoot, outputSnapshotDir);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>      }<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span><a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>      LOG.info("Export Completed: " + targetName);<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>      return 0;<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>    } catch (Exception e) {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>      LOG.error("Snapshot export failed", e);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>      if (!skipTmp) {<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>        outputFs.delete(snapshotTmpDir, true);<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      }<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>      outputFs.delete(outputSnapshotDir, true);<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      return 1;<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    } finally {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      IOUtils.closeStream(inputFs);<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>      IOUtils.closeStream(outputFs);<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>    }<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>  @Override<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  protected void printUsage() {<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    super.printUsage();<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    System.out.println("\n"<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>        + "Examples:\n"<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        + "  hbase snapshot export \\\n"<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        + "    --snapshot MySnapshot --copy-to hdfs://srv2:8082/hbase \\\n"<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>        + "    --chuser MyUser --chgroup MyGroup --chmod 700 --mappers 16\n"<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        + "\n"<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>        + "  hbase snapshot export \\\n"<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>        + "    --snapshot MySnapshot --copy-from hdfs://srv2:8082/hbase \\\n"<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        + "    --copy-to hdfs://srv1:50070/hbase");<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>  @Override protected void addOptions() {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    addRequiredOption(Options.SNAPSHOT);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    addOption(Options.COPY_TO);<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>    addOption(Options.COPY_FROM);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    addOption(Options.TARGET_NAME);<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    addOption(Options.NO_CHECKSUM_VERIFY);<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>    addOption(Options.NO_TARGET_VERIFY);<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>    addOption(Options.OVERWRITE);<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    addOption(Options.CHUSER);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    addOption(Options.CHGROUP);<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    addOption(Options.CHMOD);<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    addOption(Options.MAPPERS);<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>    addOption(Options.BANDWIDTH);<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  }<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span><a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>  public static void main(String[] args) {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    new ExportSnapshot().doStaticMain(args);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>  }<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>}<a name="line.1111"></a>
+<span class="sourceLineNo">950</span>    Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshotName, inputRoot);<a name="line.950"></a>
+<span class="sourceLineNo">951</span>    Path snapshotTmpDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(targetName, outputRoot);<a name="line.951"></a>
+<span class="sourceLineNo">952</span>    Path outputSnapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(targetName, outputRoot);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>    Path initialOutputSnapshotDir = skipTmp ? outputSnapshotDir : snapshotTmpDir;<a name="line.953"></a>
+<span class="sourceLineNo">954</span><a name="line.954"></a>
+<span class="sourceLineNo">955</span>    // Find the necessary directory which need to change owner and group<a name="line.955"></a>
+<span class="sourceLineNo">956</span>    Path needSetOwnerDir = SnapshotDescriptionUtils.getSnapshotRootDir(outputRoot);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    if (outputFs.exists(needSetOwnerDir)) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>      if (skipTmp) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        needSetOwnerDir = outputSnapshotDir;<a name="line.959"></a>
+<span class="sourceLineNo">960</span>      } else {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        needSetOwnerDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(outputRoot);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>        if (outputFs.exists(needSetOwnerDir)) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>          needSetOwnerDir = snapshotTmpDir;<a name="line.963"></a>
+<span class="sourceLineNo">964</span>        }<a name="line.964"></a>
+<span class="sourceLineNo">965</span>      }<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    }<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>    // Check if the snapshot already exists<a name="line.968"></a>
+<span class="sourceLineNo">969</span>    if (outputFs.exists(outputSnapshotDir)) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>      if (overwrite) {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>        if (!outputFs.delete(outputSnapshotDir, true)) {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>          System.err.println("Unable to remove existing snapshot directory: " + outputSnapshotDir);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>          return 1;<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>      } else {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>        System.err.println("The snapshot '" + targetName +<a name="line.976"></a>
+<span class="sourceLineNo">977</span>          "' already exists in the destination: " + outputSnapshotDir);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        return 1;<a name="line.978"></a>
+<span class="sourceLineNo">979</span>      }<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    if (!skipTmp) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>      // Check if the snapshot already in-progress<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      if (outputFs.exists(snapshotTmpDir)) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>        if (overwrite) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>          if (!outputFs.delete(snapshotTmpDir, true)) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>            System.err.println("Unable to remove existing snapshot tmp directory: "+snapshotTmpDir);<a name="line.987"></a>
+<span class="sourceLineNo">988</span>            return 1;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>          }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>        } else {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>          System.err.println("A snapshot with the same name '"+ targetName +"' may be in-progress");<a name="line.991"></a>
+<span class="sourceLineNo">992</span>          System.err.println("Please check "+snapshotTmpDir+". If the snapshot has completed, ");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>          System.err.println("consider removing "+snapshotTmpDir+" by using the -overwrite option");<a name="line.993"></a>
+<span class="sourceLineNo">994</span>          return 1;<a name="line.994"></a>
+<span class="sourceLineNo">995</span>        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>      }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    }<a name="line.997"></a>
+<span class="sourceLineNo">998</span><a name="line.998"></a>
+<span class="sourceLineNo">999</span>    // Step 1 - Copy fs1:/.snapshot/&lt;snapshot&gt; to  fs2:/.snapshot/.tmp/&lt;snapshot&gt;<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    // The snapshot references must be copied before the hfiles otherwise the cleaner<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    // will remove them because they are unreferenced.<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>    try {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>      LOG.info("Copy Snapshot Manifest");<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      FileUtil.copy(inputFs, snapshotDir, outputFs, initialOutputSnapshotDir, false, false, conf);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    } catch (IOException e) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      throw new ExportSnapshotException("Failed to copy the snapshot directory: from=" +<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        snapshotDir + " to=" + initialOutputSnapshotDir, e);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    } finally {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      if (filesUser != null || filesGroup != null) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>        LOG.warn((filesUser == null ? "" : "Change the owner of " + needSetOwnerDir + " to "<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>            + filesUser)<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>            + (filesGroup == null ? "" : ", Change the group of " + needSetOwnerDir + " to "<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>            + filesGroup));<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        setOwner(outputFs, needSetOwnerDir, filesUser, filesGroup, true);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>      }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      if (filesMode &gt; 0) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>        LOG.warn("Change the permission of " + needSetOwnerDir + " to " + filesMode);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        setPermission(outputFs, needSetOwnerDir, (short)filesMode, true);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>      }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    }<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span><a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>    // Write a new .snapshotinfo if the target name is different from the source name<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>    if (!targetName.equals(snapshotName)) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>      SnapshotDescription snapshotDesc =<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>        SnapshotDescriptionUtils.readSnapshotInfo(inputFs, snapshotDir)<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>          .toBuilder()<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>          .setName(targetName)<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>          .build();<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      SnapshotDescriptionUtils.writeSnapshotInfo(snapshotDesc, initialOutputSnapshotDir, outputFs);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      if (filesUser != null || filesGroup != null) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        outputFs.setOwner(new Path(initialOutputSnapshotDir,<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), filesUser, filesGroup);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>      }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>      if (filesMode &gt; 0) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        outputFs.setPermission(new Path(initialOutputSnapshotDir,<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), new FsPermission((short)filesMode));<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>      }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>    }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>    // Step 2 - Start MR Job to copy files<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>    // The snapshot references must be copied before the files otherwise the files gets removed<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>    // by the HFileArchiver, since they have no references.<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>    try {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>      runCopyJob(inputRoot, outputRoot, snapshotName, snapshotDir, verifyChecksum,<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                 filesUser, filesGroup, filesMode, mappers, bandwidthMB);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span><a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>      LOG.info("Finalize the Snapshot Export");<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      if (!skipTmp) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        // Step 3 - Rename fs2:/.snapshot/.tmp/&lt;snapshot&gt; fs2:/.snapshot/&lt;snapshot&gt;<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        if (!outputFs.rename(snapshotTmpDir, outputSnapshotDir)) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>          throw new ExportSnapshotException("Unable to rename snapshot directory from=" +<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>            snapshotTmpDir + " to=" + outputSnapshotDir);<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span><a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>      // Step 4 - Verify snapshot integrity<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      if (verifyTarget) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        LOG.info("Verify snapshot integrity");<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        verifySnapshot(destConf, outputFs, outputRoot, outputSnapshotDir);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>      }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      LOG.info("Export Completed: " + targetName);<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      return 0;<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>    } catch (Exception e) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>      LOG.error("Snapshot export failed", e);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      if (!skipTmp) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        outputFs.delete(snapshotTmpDir, true);<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      }<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      outputFs.delete(outputSnapshotDir, true);<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      return 1;<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>    } finally {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      IOUtils.closeStream(inputFs);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>      IOUtils.closeStream(outputFs);<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    }<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  @Override<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>  protected void printUsage() {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    super.printUsage();<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    System.out.println("\n"<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        + "Examples:\n"<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>        + "  hbase snapshot export \\\n"<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>        + "    --snapshot MySnapshot --copy-to hdfs://srv2:8082/hbase \\\n"<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        + "    --chuser MyUser --chgroup MyGroup --chmod 700 --mappers 16\n"<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>        + "\n"<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>        + "  hbase snapshot export \\\n"<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>        + "    --snapshot MySnapshot --copy-from hdfs://srv2:8082/hbase \\\n"<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        + "    --copy-to hdfs://srv1:50070/hbase");<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>  @Override protected void addOptions() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    addRequiredOption(Options.SNAPSHOT);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    addOption(Options.COPY_TO);<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>    addOption(Options.COPY_FROM);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>    addOption(Options.TARGET_NAME);<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>    addOption(Options.NO_CHECKSUM_VERIFY);<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>    addOption(Options.NO_TARGET_VERIFY);<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>    addOption(Options.OVERWRITE);<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>    addOption(Options.CHUSER);<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>    addOption(Options.CHGROUP);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>    addOption(Options.CHMOD);<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>    addOption(Options.MAPPERS);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    addOption(Options.BANDWIDTH);<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>  }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span><a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>  public static void main(String[] args) {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    new ExportSnapshot().doStaticMain(args);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  }<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>}<a name="line.1109"></a>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportSnapshotInputFormat.ExportSnapshotRecordReader.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportSnapshotInputFormat.ExportSnapshotRecordReader.html b/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportSnapshotInputFormat.ExportSnapshotRecordReader.html
index a73c866..dd2d739 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportSnapshotInputFormat.ExportSnapshotRecordReader.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportSnapshotInputFormat.ExportSnapshotRecordReader.html
@@ -834,289 +834,287 @@
 <span class="sourceLineNo">826</span><a name="line.826"></a>
 <span class="sourceLineNo">827</span>    // Run the MR Job<a name="line.827"></a>
 <span class="sourceLineNo">828</span>    if (!job.waitForCompletion(true)) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>      // TODO: Replace the fixed string with job.getStatus().getFailureInfo()<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      // when it will be available on all the supported versions.<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      throw new ExportSnapshotException("Copy Files Map-Reduce Job failed");<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    }<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  }<a name="line.833"></a>
-<span class="sourceLineNo">834</span><a name="line.834"></a>
-<span class="sourceLineNo">835</span>  private void verifySnapshot(final Configuration baseConf,<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      final FileSystem fs, final Path rootDir, final Path snapshotDir) throws IOException {<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    // Update the conf with the current root dir, since may be a different cluster<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    Configuration conf = new Configuration(baseConf);<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    FSUtils.setRootDir(conf, rootDir);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    FSUtils.setFsDefault(conf, FSUtils.getRootDir(conf));<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    SnapshotDescription snapshotDesc = SnapshotDescriptionUtils.readSnapshotInfo(fs, snapshotDir);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    SnapshotReferenceUtil.verifySnapshot(conf, fs, snapshotDir, snapshotDesc);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>  }<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>   * Set path ownership.<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   */<a name="line.847"></a>
-<span class="sourceLineNo">848</span>  private void setOwner(final FileSystem fs, final Path path, final String user,<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      final String group, final boolean recursive) throws IOException {<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    if (user != null || group != null) {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.851"></a>
-<span class="sourceLineNo">852</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          setOwner(fs, child.getPath(), user, group, recursive);<a name="line.853"></a>
-<span class="sourceLineNo">854</span>        }<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      }<a name="line.855"></a>
-<span class="sourceLineNo">856</span>      fs.setOwner(path, user, group);<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    }<a name="line.857"></a>
-<span class="sourceLineNo">858</span>  }<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>  /**<a name="line.860"></a>
-<span class="sourceLineNo">861</span>   * Set path permission.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   */<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  private void setPermission(final FileSystem fs, final Path path, final short filesMode,<a name="line.863"></a>
-<span class="sourceLineNo">864</span>      final boolean recursive) throws IOException {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (filesMode &gt; 0) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      FsPermission perm = new FsPermission(filesMode);<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>          setPermission(fs, child.getPath(), filesMode, recursive);<a name="line.869"></a>
-<span class="sourceLineNo">870</span>        }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      fs.setPermission(path, perm);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>    }<a name="line.873"></a>
-<span class="sourceLineNo">874</span>  }<a name="line.874"></a>
-<span class="sourceLineNo">875</span><a name="line.875"></a>
-<span class="sourceLineNo">876</span>  private boolean verifyTarget = true;<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  private boolean verifyChecksum = true;<a name="line.877"></a>
-<span class="sourceLineNo">878</span>  private String snapshotName = null;<a name="line.878"></a>
-<span class="sourceLineNo">879</span>  private String targetName = null;<a name="line.879"></a>
-<span class="sourceLineNo">880</span>  private boolean overwrite = false;<a name="line.880"></a>
-<span class="sourceLineNo">881</span>  private String filesGroup = null;<a name="line.881"></a>
-<span class="sourceLineNo">882</span>  private String filesUser = null;<a name="line.882"></a>
-<span class="sourceLineNo">883</span>  private Path outputRoot = null;<a name="line.883"></a>
-<span class="sourceLineNo">884</span>  private Path inputRoot = null;<a name="line.884"></a>
-<span class="sourceLineNo">885</span>  private int bandwidthMB = Integer.MAX_VALUE;<a name="line.885"></a>
-<span class="sourceLineNo">886</span>  private int filesMode = 0;<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  private int mappers = 0;<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  @Override<a name="line.889"></a>
-<span class="sourceLineNo">890</span>  protected void processOptions(CommandLine cmd) {<a name="line.890"></a>
-<span class="sourceLineNo">891</span>    snapshotName = cmd.getOptionValue(Options.SNAPSHOT.getLongOpt(), snapshotName);<a name="line.891"></a>
-<span class="sourceLineNo">892</span>    targetName = cmd.getOptionValue(Options.TARGET_NAME.getLongOpt(), targetName);<a name="line.892"></a>
-<span class="sourceLineNo">893</span>    if (cmd.hasOption(Options.COPY_TO.getLongOpt())) {<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      outputRoot = new Path(cmd.getOptionValue(Options.COPY_TO.getLongOpt()));<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    if (cmd.hasOption(Options.COPY_FROM.getLongOpt())) {<a name="line.896"></a>
-<span class="sourceLineNo">897</span>      inputRoot = new Path(cmd.getOptionValue(Options.COPY_FROM.getLongOpt()));<a name="line.897"></a>
-<span class="sourceLineNo">898</span>    }<a name="line.898"></a>
-<span class="sourceLineNo">899</span>    mappers = getOptionAsInt(cmd, Options.MAPPERS.getLongOpt(), mappers);<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    filesUser = cmd.getOptionValue(Options.CHUSER.getLongOpt(), filesUser);<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    filesGroup = cmd.getOptionValue(Options.CHGROUP.getLongOpt(), filesGroup);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>    filesMode = getOptionAsInt(cmd, Options.CHMOD.getLongOpt(), filesMode);<a name="line.902"></a>
-<span class="sourceLineNo">903</span>    bandwidthMB = getOptionAsInt(cmd, Options.BANDWIDTH.getLongOpt(), bandwidthMB);<a name="line.903"></a>
-<span class="sourceLineNo">904</span>    overwrite = cmd.hasOption(Options.OVERWRITE.getLongOpt());<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    // And verifyChecksum and verifyTarget with values read from old args in processOldArgs(...).<a name="line.905"></a>
-<span class="sourceLineNo">906</span>    verifyChecksum = !cmd.hasOption(Options.NO_CHECKSUM_VERIFY.getLongOpt());<a name="line.906"></a>
-<span class="sourceLineNo">907</span>    verifyTarget = !cmd.hasOption(Options.NO_TARGET_VERIFY.getLongOpt());<a name="line.907"></a>
-<span class="sourceLineNo">908</span>  }<a name="line.908"></a>
-<span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>  /**<a name="line.910"></a>
-<span class="sourceLineNo">911</span>   * Execute the export snapshot by copying the snapshot metadata, hfiles and wals.<a name="line.911"></a>
-<span class="sourceLineNo">912</span>   * @return 0 on success, and != 0 upon failure.<a name="line.912"></a>
-<span class="sourceLineNo">913</span>   */<a name="line.913"></a>
-<span class="sourceLineNo">914</span>  @Override<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  public int doWork() throws IOException {<a name="line.915"></a>
-<span class="sourceLineNo">916</span>    Configuration conf = getConf();<a name="line.916"></a>
-<span class="sourceLineNo">917</span><a name="line.917"></a>
-<span class="sourceLineNo">918</span>    // Check user options<a name="line.918"></a>
-<span class="sourceLineNo">919</span>    if (snapshotName == null) {<a name="line.919"></a>
-<span class="sourceLineNo">920</span>      System.err.println("Snapshot name not provided.");<a name="line.920"></a>
-<span class="sourceLineNo">921</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      return 0;<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    }<a name="line.923"></a>
-<span class="sourceLineNo">924</span><a name="line.924"></a>
-<span class="sourceLineNo">925</span>    if (outputRoot == null) {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>      System.err.println("Destination file-system (--" + Options.COPY_TO.getLongOpt()<a name="line.926"></a>
-<span class="sourceLineNo">927</span>              + ") not provided.");<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      return 0;<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    }<a name="line.930"></a>
-<span class="sourceLineNo">931</span><a name="line.931"></a>
-<span class="sourceLineNo">932</span>    if (targetName == null) {<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      targetName = snapshotName;<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    }<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    if (inputRoot == null) {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>      inputRoot = FSUtils.getRootDir(conf);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    } else {<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      FSUtils.setRootDir(conf, inputRoot);<a name="line.938"></a>
-<span class="sourceLineNo">939</span>    }<a name="line.939"></a>
-<span class="sourceLineNo">940</span><a name="line.940"></a>
-<span class="sourceLineNo">941</span>    Configuration srcConf = HBaseConfiguration.createClusterConf(conf, null, CONF_SOURCE_PREFIX);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>    srcConf.setBoolean("fs." + inputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    FileSystem inputFs = FileSystem.get(inputRoot.toUri(), srcConf);<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    LOG.debug("inputFs=" + inputFs.getUri().toString() + " inputRoot=" + inputRoot);<a name="line.944"></a>
-<span class="sourceLineNo">945</span>    Configuration destConf = HBaseConfiguration.createClusterConf(conf, null, CONF_DEST_PREFIX);<a name="line.945"></a>
-<span class="sourceLineNo">946</span>    destConf.setBoolean("fs." + outputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.946"></a>
-<span class="sourceLineNo">947</span>    FileSystem outputFs = FileSystem.get(outputRoot.toUri(), destConf);<a name="line.947"></a>
-<span class="sourceLineNo">948</span>    LOG.debug("outputFs=" + outputFs.getUri().toString() + " outputRoot=" + outputRoot.toString());<a name="line.948"></a>
+<span class="sourceLineNo">829</span>      throw new ExportSnapshotException(job.getStatus().getFailureInfo());<a name="line.829"></a>
+<span class="sourceLineNo">830</span>    }<a name="line.830"></a>
+<span class="sourceLineNo">831</span>  }<a name="line.831"></a>
+<span class="sourceLineNo">832</span><a name="line.832"></a>
+<span class="sourceLineNo">833</span>  private void verifySnapshot(final Configuration baseConf,<a name="line.833"></a>
+<span class="sourceLineNo">834</span>      final FileSystem fs, final Path rootDir, final Path snapshotDir) throws IOException {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    // Update the conf with the current root dir, since may be a different cluster<a name="line.835"></a>
+<span class="sourceLineNo">836</span>    Configuration conf = new Configuration(baseConf);<a name="line.836"></a>
+<span class="sourceLineNo">837</span>    FSUtils.setRootDir(conf, rootDir);<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    FSUtils.setFsDefault(conf, FSUtils.getRootDir(conf));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>    SnapshotDescription snapshotDesc = SnapshotDescriptionUtils.readSnapshotInfo(fs, snapshotDir);<a name="line.839"></a>
+<span class="sourceLineNo">840</span>    SnapshotReferenceUtil.verifySnapshot(conf, fs, snapshotDir, snapshotDesc);<a name="line.840"></a>
+<span class="sourceLineNo">841</span>  }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>  /**<a name="line.843"></a>
+<span class="sourceLineNo">844</span>   * Set path ownership.<a name="line.844"></a>
+<span class="sourceLineNo">845</span>   */<a name="line.845"></a>
+<span class="sourceLineNo">846</span>  private void setOwner(final FileSystem fs, final Path path, final String user,<a name="line.846"></a>
+<span class="sourceLineNo">847</span>      final String group, final boolean recursive) throws IOException {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    if (user != null || group != null) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>          setOwner(fs, child.getPath(), user, group, recursive);<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span>      }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>      fs.setOwner(path, user, group);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>    }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>  }<a name="line.856"></a>
+<span class="sourceLineNo">857</span><a name="line.857"></a>
+<span class="sourceLineNo">858</span>  /**<a name="line.858"></a>
+<span class="sourceLineNo">859</span>   * Set path permission.<a name="line.859"></a>
+<span class="sourceLineNo">860</span>   */<a name="line.860"></a>
+<span class="sourceLineNo">861</span>  private void setPermission(final FileSystem fs, final Path path, final short filesMode,<a name="line.861"></a>
+<span class="sourceLineNo">862</span>      final boolean recursive) throws IOException {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>    if (filesMode &gt; 0) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>      FsPermission perm = new FsPermission(filesMode);<a name="line.864"></a>
+<span class="sourceLineNo">865</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>          setPermission(fs, child.getPath(), filesMode, recursive);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>        }<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>      fs.setPermission(path, perm);<a name="line.870"></a>
+<span class="sourceLineNo">871</span>    }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>  }<a name="line.872"></a>
+<span class="sourceLineNo">873</span><a name="line.873"></a>
+<span class="sourceLineNo">874</span>  private boolean verifyTarget = true;<a name="line.874"></a>
+<span class="sourceLineNo">875</span>  private boolean verifyChecksum = true;<a name="line.875"></a>
+<span class="sourceLineNo">876</span>  private String snapshotName = null;<a name="line.876"></a>
+<span class="sourceLineNo">877</span>  private String targetName = null;<a name="line.877"></a>
+<span class="sourceLineNo">878</span>  private boolean overwrite = false;<a name="line.878"></a>
+<span class="sourceLineNo">879</span>  private String filesGroup = null;<a name="line.879"></a>
+<span class="sourceLineNo">880</span>  private String filesUser = null;<a name="line.880"></a>
+<span class="sourceLineNo">881</span>  private Path outputRoot = null;<a name="line.881"></a>
+<span class="sourceLineNo">882</span>  private Path inputRoot = null;<a name="line.882"></a>
+<span class="sourceLineNo">883</span>  private int bandwidthMB = Integer.MAX_VALUE;<a name="line.883"></a>
+<span class="sourceLineNo">884</span>  private int filesMode = 0;<a name="line.884"></a>
+<span class="sourceLineNo">885</span>  private int mappers = 0;<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>  @Override<a name="line.887"></a>
+<span class="sourceLineNo">888</span>  protected void processOptions(CommandLine cmd) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    snapshotName = cmd.getOptionValue(Options.SNAPSHOT.getLongOpt(), snapshotName);<a name="line.889"></a>
+<span class="sourceLineNo">890</span>    targetName = cmd.getOptionValue(Options.TARGET_NAME.getLongOpt(), targetName);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>    if (cmd.hasOption(Options.COPY_TO.getLongOpt())) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>      outputRoot = new Path(cmd.getOptionValue(Options.COPY_TO.getLongOpt()));<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    }<a name="line.893"></a>
+<span class="sourceLineNo">894</span>    if (cmd.hasOption(Options.COPY_FROM.getLongOpt())) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>      inputRoot = new Path(cmd.getOptionValue(Options.COPY_FROM.getLongOpt()));<a name="line.895"></a>
+<span class="sourceLineNo">896</span>    }<a name="line.896"></a>
+<span class="sourceLineNo">897</span>    mappers = getOptionAsInt(cmd, Options.MAPPERS.getLongOpt(), mappers);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    filesUser = cmd.getOptionValue(Options.CHUSER.getLongOpt(), filesUser);<a name="line.898"></a>
+<span class="sourceLineNo">899</span>    filesGroup = cmd.getOptionValue(Options.CHGROUP.getLongOpt(), filesGroup);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>    filesMode = getOptionAsInt(cmd, Options.CHMOD.getLongOpt(), filesMode);<a name="line.900"></a>
+<span class="sourceLineNo">901</span>    bandwidthMB = getOptionAsInt(cmd, Options.BANDWIDTH.getLongOpt(), bandwidthMB);<a name="line.901"></a>
+<span class="sourceLineNo">902</span>    overwrite = cmd.hasOption(Options.OVERWRITE.getLongOpt());<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    // And verifyChecksum and verifyTarget with values read from old args in processOldArgs(...).<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    verifyChecksum = !cmd.hasOption(Options.NO_CHECKSUM_VERIFY.getLongOpt());<a name="line.904"></a>
+<span class="sourceLineNo">905</span>    verifyTarget = !cmd.hasOption(Options.NO_TARGET_VERIFY.getLongOpt());<a name="line.905"></a>
+<span class="sourceLineNo">906</span>  }<a name="line.906"></a>
+<span class="sourceLineNo">907</span><a name="line.907"></a>
+<span class="sourceLineNo">908</span>  /**<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   * Execute the export snapshot by copying the snapshot metadata, hfiles and wals.<a name="line.909"></a>
+<span class="sourceLineNo">910</span>   * @return 0 on success, and != 0 upon failure.<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>  @Override<a name="line.912"></a>
+<span class="sourceLineNo">913</span>  public int doWork() throws IOException {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    Configuration conf = getConf();<a name="line.914"></a>
+<span class="sourceLineNo">915</span><a name="line.915"></a>
+<span class="sourceLineNo">916</span>    // Check user options<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    if (snapshotName == null) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>      System.err.println("Snapshot name not provided.");<a name="line.918"></a>
+<span class="sourceLineNo">919</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.919"></a>
+<span class="sourceLineNo">920</span>      return 0;<a name="line.920"></a>
+<span class="sourceLineNo">921</span>    }<a name="line.921"></a>
+<span class="sourceLineNo">922</span><a name="line.922"></a>
+<span class="sourceLineNo">923</span>    if (outputRoot == null) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>      System.err.println("Destination file-system (--" + Options.COPY_TO.getLongOpt()<a name="line.924"></a>
+<span class="sourceLineNo">925</span>              + ") not provided.");<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      return 0;<a name="line.927"></a>
+<span class="sourceLineNo">928</span>    }<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>    if (targetName == null) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      targetName = snapshotName;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    if (inputRoot == null) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      inputRoot = FSUtils.getRootDir(conf);<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    } else {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>      FSUtils.setRootDir(conf, inputRoot);<a name="line.936"></a>
+<span class="sourceLineNo">937</span>    }<a name="line.937"></a>
+<span class="sourceLineNo">938</span><a name="line.938"></a>
+<span class="sourceLineNo">939</span>    Configuration srcConf = HBaseConfiguration.createClusterConf(conf, null, CONF_SOURCE_PREFIX);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    srcConf.setBoolean("fs." + inputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    FileSystem inputFs = FileSystem.get(inputRoot.toUri(), srcConf);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>    LOG.debug("inputFs=" + inputFs.getUri().toString() + " inputRoot=" + inputRoot);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>    Configuration destConf = HBaseConfiguration.createClusterConf(conf, null, CONF_DEST_PREFIX);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>    destConf.setBoolean("fs." + outputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>    FileSystem outputFs = FileSystem.get(outputRoot.toUri(), destConf);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    LOG.debug("outputFs=" + outputFs.getUri().toString() + " outputRoot=" + outputRoot.toString());<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>    boolean skipTmp = conf.getBoolean(CONF_SKIP_TMP, false);<a name="line.948"></a>
 <span class="sourceLineNo">949</span><a name="line.949"></a>
-<span class="sourceLineNo">950</span>    boolean skipTmp = conf.getBoolean(CONF_SKIP_TMP, false);<a name="line.950"></a>
-<span class="sourceLineNo">951</span><a name="line.951"></a>
-<span class="sourceLineNo">952</span>    Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshotName, inputRoot);<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    Path snapshotTmpDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(targetName, outputRoot);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    Path outputSnapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(targetName, outputRoot);<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    Path initialOutputSnapshotDir = skipTmp ? outputSnapshotDir : snapshotTmpDir;<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>    // Find the necessary directory which need to change owner and group<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    Path needSetOwnerDir = SnapshotDescriptionUtils.getSnapshotRootDir(outputRoot);<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    if (outputFs.exists(needSetOwnerDir)) {<a name="line.959"></a>
-<span class="sourceLineNo">960</span>      if (skipTmp) {<a name="line.960"></a>
-<span class="sourceLineNo">961</span>        needSetOwnerDir = outputSnapshotDir;<a name="line.961"></a>
-<span class="sourceLineNo">962</span>      } else {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>        needSetOwnerDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(outputRoot);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>        if (outputFs.exists(needSetOwnerDir)) {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>          needSetOwnerDir = snapshotTmpDir;<a name="line.965"></a>
-<span class="sourceLineNo">966</span>        }<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
-<span class="sourceLineNo">969</span><a name="line.969"></a>
-<span class="sourceLineNo">970</span>    // Check if the snapshot already exists<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (outputFs.exists(outputSnapshotDir)) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      if (overwrite) {<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        if (!outputFs.delete(outputSnapshotDir, true)) {<a name="line.973"></a>
-<span class="sourceLineNo">974</span>          System.err.println("Unable to remove existing snapshot directory: " + outputSnapshotDir);<a name="line.974"></a>
-<span class="sourceLineNo">975</span>          return 1;<a name="line.975"></a>
-<span class="sourceLineNo">976</span>        }<a name="line.976"></a>
-<span class="sourceLineNo">977</span>      } else {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>        System.err.println("The snapshot '" + targetName +<a name="line.978"></a>
-<span class="sourceLineNo">979</span>          "' already exists in the destination: " + outputSnapshotDir);<a name="line.979"></a>
-<span class="sourceLineNo">980</span>        return 1;<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      }<a name="line.981"></a>
-<span class="sourceLineNo">982</span>    }<a name="line.982"></a>
-<span class="sourceLineNo">983</span><a name="line.983"></a>
-<span class="sourceLineNo">984</span>    if (!skipTmp) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      // Check if the snapshot already in-progress<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      if (outputFs.exists(snapshotTmpDir)) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>        if (overwrite) {<a name="line.987"></a>
-<span class="sourceLineNo">988</span>          if (!outputFs.delete(snapshotTmpDir, true)) {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            System.err.println("Unable to remove existing snapshot tmp directory: "+snapshotTmpDir);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>            return 1;<a name="line.990"></a>
-<span class="sourceLineNo">991</span>          }<a name="line.991"></a>
-<span class="sourceLineNo">992</span>        } else {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>          System.err.println("A snapshot with the same name '"+ targetName +"' may be in-progress");<a name="line.993"></a>
-<span class="sourceLineNo">994</span>          System.err.println("Please check "+snapshotTmpDir+". If the snapshot has completed, ");<a name="line.994"></a>
-<span class="sourceLineNo">995</span>          System.err.println("consider removing "+snapshotTmpDir+" by using the -overwrite option");<a name="line.995"></a>
-<span class="sourceLineNo">996</span>          return 1;<a name="line.996"></a>
-<span class="sourceLineNo">997</span>        }<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      }<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span><a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // Step 1 - Copy fs1:/.snapshot/&lt;snapshot&gt; to  fs2:/.snapshot/.tmp/&lt;snapshot&gt;<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // The snapshot references must be copied before the hfiles otherwise the cleaner<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    // will remove them because they are unreferenced.<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      LOG.info("Copy Snapshot Manifest");<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      FileUtil.copy(inputFs, snapshotDir, outputFs, initialOutputSnapshotDir, false, false, conf);<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    } catch (IOException e) {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      throw new ExportSnapshotException("Failed to copy the snapshot directory: from=" +<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>        snapshotDir + " to=" + initialOutputSnapshotDir, e);<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    } finally {<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      if (filesUser != null || filesGroup != null) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        LOG.warn((filesUser == null ? "" : "Change the owner of " + needSetOwnerDir + " to "<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>            + filesUser)<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>            + (filesGroup == null ? "" : ", Change the group of " + needSetOwnerDir + " to "<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>            + filesGroup));<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        setOwner(outputFs, needSetOwnerDir, filesUser, filesGroup, true);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>      }<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      if (filesMode &gt; 0) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>        LOG.warn("Change the permission of " + needSetOwnerDir + " to " + filesMode);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        setPermission(outputFs, needSetOwnerDir, (short)filesMode, true);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    }<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span><a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    // Write a new .snapshotinfo if the target name is different from the source name<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    if (!targetName.equals(snapshotName)) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      SnapshotDescription snapshotDesc =<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>        SnapshotDescriptionUtils.readSnapshotInfo(inputFs, snapshotDir)<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>          .toBuilder()<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          .setName(targetName)<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>          .build();<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>      SnapshotDescriptionUtils.writeSnapshotInfo(snapshotDesc, initialOutputSnapshotDir, outputFs);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>      if (filesUser != null || filesGroup != null) {<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>        outputFs.setOwner(new Path(initialOutputSnapshotDir,<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), filesUser, filesGroup);<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>      }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>      if (filesMode &gt; 0) {<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>        outputFs.setPermission(new Path(initialOutputSnapshotDir,<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), new FsPermission((short)filesMode));<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>      }<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>    // Step 2 - Start MR Job to copy files<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    // The snapshot references must be copied before the files otherwise the files gets removed<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>    // by the HFileArchiver, since they have no references.<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>    try {<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>      runCopyJob(inputRoot, outputRoot, snapshotName, snapshotDir, verifyChecksum,<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>                 filesUser, filesGroup, filesMode, mappers, bandwidthMB);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span><a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      LOG.info("Finalize the Snapshot Export");<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>      if (!skipTmp) {<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>        // Step 3 - Rename fs2:/.snapshot/.tmp/&lt;snapshot&gt; fs2:/.snapshot/&lt;snapshot&gt;<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        if (!outputFs.rename(snapshotTmpDir, outputSnapshotDir)) {<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>          throw new ExportSnapshotException("Unable to rename snapshot directory from=" +<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>            snapshotTmpDir + " to=" + outputSnapshotDir);<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        }<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>      }<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span><a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>      // Step 4 - Verify snapshot integrity<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>      if (verifyTarget) {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>        LOG.info("Verify snapshot integrity");<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>        verifySnapshot(destConf, outputFs, outputRoot, outputSnapshotDir);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>      }<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span><a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>      LOG.info("Export Completed: " + targetName);<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>      return 0;<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>    } catch (Exception e) {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>      LOG.error("Snapshot export failed", e);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>      if (!skipTmp) {<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>        outputFs.delete(snapshotTmpDir, true);<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      }<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>      outputFs.delete(outputSnapshotDir, true);<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      return 1;<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    } finally {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      IOUtils.closeStream(inputFs);<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>      IOUtils.closeStream(outputFs);<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>    }<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>  @Override<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  protected void printUsage() {<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    super.printUsage();<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    System.out.println("\n"<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>        + "Examples:\n"<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        + "  hbase snapshot export \\\n"<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        + "    --snapshot MySnapshot --copy-to hdfs://srv2:8082/hbase \\\n"<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>        + "    --chuser MyUser --chgroup MyGroup --chmod 700 --mappers 16\n"<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        + "\n"<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>        + "  hbase snapshot export \\\n"<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>        + "    --snapshot MySnapshot --copy-from hdfs://srv2:8082/hbase \\\n"<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        + "    --copy-to hdfs://srv1:50070/hbase");<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>  @Override protected void addOptions() {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    addRequiredOption(Options.SNAPSHOT);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    addOption(Options.COPY_TO);<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>    addOption(Options.COPY_FROM);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    addOption(Options.TARGET_NAME);<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    addOption(Options.NO_CHECKSUM_VERIFY);<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>    addOption(Options.NO_TARGET_VERIFY);<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>    addOption(Options.OVERWRITE);<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    addOption(Options.CHUSER);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    addOption(Options.CHGROUP);<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    addOption(Options.CHMOD);<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    addOption(Options.MAPPERS);<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>    addOption(Options.BANDWIDTH);<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  }<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span><a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>  public static void main(String[] args) {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    new ExportSnapshot().doStaticMain(args);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>  }<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>}<a name="line.1111"></a>
+<span class="sourceLineNo">950</span>    Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshotName, inputRoot);<a name="line.950"></a>
+<span class="sourceLineNo">951</span>    Path snapshotTmpDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(targetName, outputRoot);<a name="line.951"></a>
+<span class="sourceLineNo">952</span>    Path outputSnapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(targetName, outputRoot);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>    Path initialOutputSnapshotDir = skipTmp ? outputSnapshotDir : snapshotTmpDir;<a name="line.953"></a>
+<span class="sourceLineNo">954</span><a name="line.954"></a>
+<span class="sourceLineNo">955</span>    // Find the necessary directory which need to change owner and group<a name="line.955"></a>
+<span class="sourceLineNo">956</span>    Path needSetOwnerDir = SnapshotDescriptionUtils.getSnapshotRootDir(outputRoot);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    if (outputFs.exists(needSetOwnerDir)) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>      if (skipTmp) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        needSetOwnerDir = outputSnapshotDir;<a name="line.959"></a>
+<span class="sourceLineNo">960</span>      } else {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        needSetOwnerDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(outputRoot);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>        if (outputFs.exists(needSetOwnerDir)) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>          needSetOwnerDir = snapshotTmpDir;<a name="line.963"></a>
+<span class="sourceLineNo">964</span>        }<a name="line.964"></a>
+<span class="sourceLineNo">965</span>      }<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    }<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>    // Check if the snapshot already exists<a name="line.968"></a>
+<span class="sourceLineNo">969</span>    if (outputFs.exists(outputSnapshotDir)) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>      if (overwrite) {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>        if (!outputFs.delete(outputSnapshotDir, true)) {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>          System.err.println("Unable to remove existing snapshot directory: " + outputSnapshotDir);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>          return 1;<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>      } else {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>        System.err.println("The snapshot '" + targetName +<a name="line.976"></a>
+<span class="sourceLineNo">977</span>          "' already exists in the destination: " + outputSnapshotDir);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        return 1;<a name="line.978"></a>
+<span class="sourceLineNo">979</span>      }<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    if (!skipTmp) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>      // Check if the snapshot already in-progress<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      if (outputFs.exists(snapshotTmpDir)) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>        if (overwrite) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>          if (!outputFs.delete(snapshotTmpDir, true)) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>            System.err.println("Unable to remove existing snapshot tmp directory: "+snapshotTmpDir);<a name="line.987"></a>
+<span class="sourceLineNo">988</span>            return 1;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>          }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>        } else {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>          System.err.println("A snapshot with the same name '"+ targetName +"' may be in-progress");<a name="line.991"></a>
+<span class="sourceLineNo">992</span>          System.err.println("Please check "+snapshotTmpDir+". If the snapshot has completed, ");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>          System.err.println("consider removing "+snapshotTmpDir+" by using the -overwrite option");<a name="line.993"></a>
+<span class="sourceLineNo">994</span>          return 1;<a name="line.994"></a>
+<span class="sourceLineNo">995</span>        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>      }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    }<a name="line.997"></a>
+<span class="sourceLineNo">998</span><a name="line.998"></a>
+<span class="sourceLineNo">999</span>    // Step 1 - Copy fs1:/.snapshot/&lt;snapshot&gt; to  fs2:/.snapshot/.tmp/&lt;snapshot&gt;<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    // The snapshot references must be copied before the hfiles otherwise the cleaner<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    // will remove them because they are unreferenced.<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>    try {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>      LOG.info("Copy Snapshot Manifest");<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      FileUtil.copy(inputFs, snapshotDir, outputFs, initialOutputSnapshotDir, false, false, conf);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    } catch (IOException e) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      throw new ExportSnapshotException("Failed to copy the snapshot directory: from=" +<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        snapshotDir + " to=" + initialOutputSnapshotDir, e);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    } finally {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      if (filesUser != null || filesGroup != null) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>        LOG.warn((filesUser == null ? "" : "Change the owner of " + needSetOwnerDir + " to "<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>            + filesUser)<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>            + (filesGroup == null ? "" : ", Change the group of " + needSetOwnerDir + " to "<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>            + filesGroup));<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        setOwner(outputFs, needSetOwnerDir, filesUser, filesGroup, true);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>      }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      if (filesMode &gt; 0) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>        LOG.warn("Change the permission of " + needSetOwnerDir + " to " + filesMode);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        setPermission(outputFs, needSetOwnerDir, (short)filesMode, true);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>      }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    }<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span><a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>    // Write a new .snapshotinfo if the target name is different from the source name<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>    if (!targetName.equals(snapshotName)) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>      SnapshotDescription snapshotDesc =<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>        SnapshotDescriptionUtils.readSnapshotInfo(inputFs, snapshotDir)<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>          .toBuilder()<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>          .setName(targetName)<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>          .build();<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      SnapshotDescriptionUtils.writeSnapshotInfo(snapshotDesc, initialOutputSnapshotDir, outputFs);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      if (filesUser != null || filesGroup != null) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        outputFs.setOwner(new Path(initialOutputSnapshotDir,<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), filesUser, filesGroup);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>      }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>      if (filesMode &gt; 0) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        outputFs.setPermission(new Path(initialOutputSnapshotDir,<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), new FsPermission((short)filesMode));<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>      }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>    }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>    // Step 2 - Start MR Job to copy files<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>    // The snapshot references must be copied before the files otherwise the files gets removed<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>    // by the HFileArchiver, since they have no references.<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>    try {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>      runCopyJob(inputRoot, outputRoot, snapshotName, snapshotDir, verifyChecksum,<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                 filesUser, filesGroup, filesMode, mappers, bandwidthMB);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span><a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>      LOG.info("Finalize the Snapshot Export");<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      if (!skipTmp) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        // Step 3 - Rename fs2:/.snapshot/.tmp/&lt;snapshot&gt; fs2:/.snapshot/&lt;snapshot&gt;<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        if (!outputFs.rename(snapshotTmpDir, outputSnapshotDir)) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>          throw new ExportSnapshotException("Unable to rename snapshot directory from=" +<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>            snapshotTmpDir + " to=" + outputSnapshotDir);<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span><a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>      // Step 4 - Verify snapshot integrity<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      if (verifyTarget) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        LOG.info("Verify snapshot integrity");<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        verifySnapshot(destConf, outputFs, outputRoot, outputSnapshotDir);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>      }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      LOG.info("Export Completed: " + targetName);<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      return 0;<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>    } catch (Exception e) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>      LOG.error("Snapshot export failed", e);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      if (!skipTmp) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        outputFs.delete(snapshotTmpDir, true);<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      }<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      outputFs.delete(outputSnapshotDir, true);<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      return 1;<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>    } finally {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      IOUtils.closeStream(inputFs);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>      IOUtils.closeStream(outputFs);<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    }<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  @Override<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>  protected void printUsage() {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    super.printUsage();<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    System.out.println("\n"<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        + "Examples:\n"<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>        + "  hbase snapshot export \\\n"<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>        + "    --snapshot MySnapshot --copy-to hdfs://srv2:8082/hbase \\\n"<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        + "    --chuser MyUser --chgroup MyGroup --chmod 700 --mappers 16\n"<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>        + "\n"<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>        + "  hbase snapshot export \\\n"<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>        + "    --snapshot MySnapshot --copy-from hdfs://srv2:8082/hbase \\\n"<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        + "    --copy-to hdfs://srv1:50070/hbase");<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>  @Override protected void addOptions() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    addRequiredOption(Options.SNAPSHOT);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    addOption(Options.COPY_TO);<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>    addOption(Options.COPY_FROM);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>    addOption(Options.TARGET_NAME);<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>    addOption(Options.NO_CHECKSUM_VERIFY);<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>    addOption(Options.NO_TARGET_VERIFY);<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>    addOption(Options.OVERWRITE);<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>    addOption(Options.CHUSER);<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>    addOption(Options.CHGROUP);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>    addOption(Options.CHMOD);<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>    addOption(Options.MAPPERS);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    addOption(Options.BANDWIDTH);<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>  }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span><a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>  public static void main(String[] args) {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    new ExportSnapshot().doStaticMain(args);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  }<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>}<a name="line.1109"></a>
 
 
 


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

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


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

Branch: refs/heads/asf-site
Commit: 96bf4e08618a9ddabcfcc19db1844443ef0c0b0e
Parents: 85f4b09
Author: jenkins <bu...@apache.org>
Authored: Tue Sep 5 15:13:35 2017 +0000
Committer: jenkins <bu...@apache.org>
Committed: Tue Sep 5 15:13:35 2017 +0000

----------------------------------------------------------------------
 acid-semantics.html                             |   4 +-
 apache_hbase_reference_guide.pdf                |   6 +-
 .../hadoop/hbase/snapshot/ExportSnapshot.html   |  10 +-
 .../hadoop/hbase/snapshot/ExportSnapshot.html   | 562 +++++++++----------
 book.html                                       |   2 +-
 bulk-loads.html                                 |   4 +-
 checkstyle-aggregate.html                       |  22 +-
 coc.html                                        |   4 +-
 cygwin.html                                     |   4 +-
 dependencies.html                               |   4 +-
 dependency-convergence.html                     |   8 +-
 dependency-info.html                            |   4 +-
 dependency-management.html                      |  18 +-
 devapidocs/constant-values.html                 |   6 +-
 .../hadoop/hbase/snapshot/ExportSnapshot.html   |  40 +-
 .../org/apache/hadoop/hbase/Version.html        |   6 +-
 .../hbase/snapshot/ExportSnapshot.Counter.html  | 562 +++++++++----------
 .../snapshot/ExportSnapshot.ExportMapper.html   | 562 +++++++++----------
 ...hotInputFormat.ExportSnapshotInputSplit.html | 562 +++++++++----------
 ...tInputFormat.ExportSnapshotRecordReader.html | 562 +++++++++----------
 ...xportSnapshot.ExportSnapshotInputFormat.html | 562 +++++++++----------
 .../hbase/snapshot/ExportSnapshot.Options.html  | 562 +++++++++----------
 .../hbase/snapshot/ExportSnapshot.Testing.html  | 562 +++++++++----------
 .../hadoop/hbase/snapshot/ExportSnapshot.html   | 562 +++++++++----------
 export_control.html                             |   4 +-
 hbase-build-configuration/dependencies.html     |   4 +-
 .../dependency-convergence.html                 |   8 +-
 hbase-build-configuration/dependency-info.html  |   4 +-
 .../dependency-management.html                  |  18 +-
 .../hbase-annotations/checkstyle.html           |   4 +-
 .../hbase-annotations/dependencies.html         |   4 +-
 .../dependency-convergence.html                 |   8 +-
 .../hbase-annotations/dependency-info.html      |   4 +-
 .../dependency-management.html                  |  18 +-
 .../hbase-annotations/index.html                |   4 +-
 .../hbase-annotations/integration.html          |   4 +-
 .../hbase-annotations/issue-tracking.html       |   4 +-
 .../hbase-annotations/license.html              |   4 +-
 .../hbase-annotations/mail-lists.html           |   4 +-
 .../hbase-annotations/plugin-management.html    |   4 +-
 .../hbase-annotations/plugins.html              |   4 +-
 .../hbase-annotations/project-info.html         |   4 +-
 .../hbase-annotations/project-reports.html      |   4 +-
 .../hbase-annotations/project-summary.html      |   4 +-
 .../hbase-annotations/source-repository.html    |   4 +-
 .../hbase-annotations/team-list.html            |   4 +-
 .../hbase-archetypes/dependencies.html          |   4 +-
 .../dependency-convergence.html                 |   8 +-
 .../hbase-archetypes/dependency-info.html       |   4 +-
 .../hbase-archetypes/dependency-management.html |  18 +-
 .../hbase-archetype-builder/dependencies.html   |   4 +-
 .../dependency-convergence.html                 |   8 +-
 .../dependency-info.html                        |   4 +-
 .../dependency-management.html                  |  18 +-
 .../hbase-archetype-builder/index.html          |   4 +-
 .../hbase-archetype-builder/integration.html    |   4 +-
 .../hbase-archetype-builder/issue-tracking.html |   4 +-
 .../hbase-archetype-builder/license.html        | 208 +------
 .../hbase-archetype-builder/mail-lists.html     |   4 +-
 .../plugin-management.html                      |   4 +-
 .../hbase-archetype-builder/plugins.html        |   4 +-
 .../hbase-archetype-builder/project-info.html   |   4 +-
 .../project-summary.html                        |   4 +-
 .../source-repository.html                      |   4 +-
 .../hbase-archetype-builder/team-list.html      |   4 +-
 .../hbase-client-project/checkstyle.html        |   4 +-
 .../hbase-client-project/dependencies.html      |  74 +--
 .../dependency-convergence.html                 |   8 +-
 .../hbase-client-project/dependency-info.html   |   4 +-
 .../dependency-management.html                  |  18 +-
 .../hbase-client-project/index.html             |   4 +-
 .../hbase-client-project/integration.html       |   4 +-
 .../hbase-client-project/issue-tracking.html    |   4 +-
 .../hbase-client-project/license.html           |   4 +-
 .../hbase-client-project/mail-lists.html        |   4 +-
 .../hbase-client-project/plugin-management.html |   4 +-
 .../hbase-client-project/plugins.html           |   4 +-
 .../hbase-client-project/project-info.html      |   4 +-
 .../hbase-client-project/project-reports.html   |   4 +-
 .../hbase-client-project/project-summary.html   |   4 +-
 .../hbase-client-project/source-repository.html |   4 +-
 .../hbase-client-project/team-list.html         |   4 +-
 .../hbase-shaded-client-project/checkstyle.html |   4 +-
 .../dependencies.html                           |  74 +--
 .../dependency-convergence.html                 |   8 +-
 .../dependency-info.html                        |   4 +-
 .../dependency-management.html                  |  18 +-
 .../hbase-shaded-client-project/index.html      |   4 +-
 .../integration.html                            |   4 +-
 .../issue-tracking.html                         |   4 +-
 .../hbase-shaded-client-project/license.html    |   6 +-
 .../hbase-shaded-client-project/mail-lists.html |   4 +-
 .../plugin-management.html                      |   4 +-
 .../hbase-shaded-client-project/plugins.html    |   4 +-
 .../project-info.html                           |   4 +-
 .../project-reports.html                        |   4 +-
 .../project-summary.html                        |   4 +-
 .../source-repository.html                      |   4 +-
 .../hbase-shaded-client-project/team-list.html  |   4 +-
 .../hbase-archetypes/index.html                 |   4 +-
 .../hbase-archetypes/integration.html           |   4 +-
 .../hbase-archetypes/issue-tracking.html        |   4 +-
 .../hbase-archetypes/license.html               |   4 +-
 .../hbase-archetypes/mail-lists.html            |   4 +-
 .../hbase-archetypes/plugin-management.html     |   4 +-
 .../hbase-archetypes/plugins.html               |   4 +-
 .../hbase-archetypes/project-info.html          |   4 +-
 .../hbase-archetypes/project-summary.html       |   4 +-
 .../hbase-archetypes/source-repository.html     |   4 +-
 .../hbase-archetypes/team-list.html             |   4 +-
 .../hbase-spark/checkstyle.html                 |   4 +-
 .../hbase-spark/dependencies.html               |  70 +--
 .../hbase-spark/dependency-convergence.html     |   8 +-
 .../hbase-spark/dependency-info.html            |   4 +-
 .../hbase-spark/dependency-management.html      |  18 +-
 .../hbase-spark/index.html                      |   4 +-
 .../hbase-spark/integration.html                |   4 +-
 .../hbase-spark/issue-tracking.html             |   4 +-
 .../hbase-spark/license.html                    | 208 +------
 .../hbase-spark/mail-lists.html                 |   4 +-
 .../hbase-spark/plugin-management.html          |   4 +-
 .../hbase-spark/plugins.html                    |   4 +-
 .../hbase-spark/project-info.html               |   4 +-
 .../hbase-spark/project-reports.html            |   4 +-
 .../hbase-spark/project-summary.html            |   4 +-
 .../hbase-spark/source-repository.html          |   4 +-
 .../hbase-spark/team-list.html                  |   4 +-
 hbase-build-configuration/index.html            |   4 +-
 hbase-build-configuration/integration.html      |   4 +-
 hbase-build-configuration/issue-tracking.html   |   4 +-
 hbase-build-configuration/license.html          |   4 +-
 hbase-build-configuration/mail-lists.html       |   4 +-
 .../plugin-management.html                      |   4 +-
 hbase-build-configuration/plugins.html          |   4 +-
 hbase-build-configuration/project-info.html     |   4 +-
 hbase-build-configuration/project-summary.html  |   4 +-
 .../source-repository.html                      |   4 +-
 hbase-build-configuration/team-list.html        |   4 +-
 hbase-shaded-check-invariants/checkstyle.html   |   4 +-
 hbase-shaded-check-invariants/dependencies.html | 455 ++++++++-------
 .../dependency-convergence.html                 |   8 +-
 .../dependency-info.html                        |   4 +-
 .../dependency-management.html                  |  18 +-
 hbase-shaded-check-invariants/index.html        |   4 +-
 hbase-shaded-check-invariants/integration.html  |   4 +-
 .../issue-tracking.html                         |   4 +-
 hbase-shaded-check-invariants/license.html      |   4 +-
 hbase-shaded-check-invariants/mail-lists.html   |   4 +-
 .../plugin-management.html                      |   4 +-
 hbase-shaded-check-invariants/plugins.html      |   4 +-
 hbase-shaded-check-invariants/project-info.html |   4 +-
 .../project-reports.html                        |   4 +-
 .../project-summary.html                        |   4 +-
 .../source-repository.html                      |   4 +-
 hbase-shaded-check-invariants/team-list.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 +-
 .../hadoop/hbase/tool/TestCanaryTool.html       |  34 +-
 .../hadoop/hbase/tool/TestCanaryTool.html       | 434 +++++++-------
 177 files changed, 3596 insertions(+), 3887 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index b77016b..397fc27 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) ACID Properties
@@ -606,7 +606,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: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 7c18738..18497b7 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:20170904144632+00'00')
-/CreationDate (D:20170904144632+00'00')
+/ModDate (D:20170905144634+00'00')
+/CreationDate (D:20170905144634+00'00')
 >>
 endobj
 2 0 obj
@@ -27334,7 +27334,7 @@ endobj
 endobj
 136 0 obj
 << /Limits [(__anchor-top) (adding.new.node)]
-/Names [(__anchor-top) 25 0 R (__indexterm-6968252) 3259 0 R (__indexterm-6970502) 3261 0 R (__indexterm-6972564) 3262 0 R (__indexterm-6974438) 3263 0 R (acid) 891 0 R (add-metric-name-and-function-to-hadoop-compat-interface) 3358 0 R (add-the-implementation-to-both-hadoop-1-and-hadoop-2-compat-modules) 3359 0 R (add.metrics) 3356 0 R (adding-a-new-chapter-to-the-hbase-reference-guide) 3597 0 R (adding.new.node) 2856 0 R]
+/Names [(__anchor-top) 25 0 R (__indexterm-6968250) 3259 0 R (__indexterm-6970500) 3261 0 R (__indexterm-6972562) 3262 0 R (__indexterm-6974436) 3263 0 R (acid) 891 0 R (add-metric-name-and-function-to-hadoop-compat-interface) 3358 0 R (add-the-implementation-to-both-hadoop-1-and-hadoop-2-compat-modules) 3359 0 R (add.metrics) 3356 0 R (adding-a-new-chapter-to-the-hbase-reference-guide) 3597 0 R (adding.new.node) 2856 0 R]
 >>
 endobj
 137 0 obj

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/apidocs/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html b/apidocs/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html
index 6ef033f..900b87d 100644
--- a/apidocs/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html
+++ b/apidocs/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html
@@ -359,7 +359,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>processOptions</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.890">processOptions</a>(org.apache.commons.cli.CommandLine&nbsp;cmd)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.888">processOptions</a>(org.apache.commons.cli.CommandLine&nbsp;cmd)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code>org.apache.hadoop.hbase.util.AbstractHBaseTool</code></span></div>
 <div class="block">This method is called to process the options after they have been parsed.</div>
 <dl>
@@ -374,7 +374,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>doWork</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.915">doWork</a>()
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.913">doWork</a>()
            throws <a href="http://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">Execute the export snapshot by copying the snapshot metadata, hfiles and wals.</div>
 <dl>
@@ -393,7 +393,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>printUsage</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.1080">printUsage</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.1078">printUsage</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code>printUsage</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.util.AbstractHBaseTool</code></dd>
@@ -406,7 +406,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>addOptions</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.1093">addOptions</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.1091">addOptions</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code>org.apache.hadoop.hbase.util.AbstractHBaseTool</code></span></div>
 <div class="block">Override this to add command-line options using <code>AbstractHBaseTool.addOptWithArg(java.lang.String, java.lang.String)</code>
  and similar methods.</div>
@@ -422,7 +422,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>main</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.1108">main</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.1106">main</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/apidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html b/apidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html
index a73c866..dd2d739 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html
@@ -834,289 +834,287 @@
 <span class="sourceLineNo">826</span><a name="line.826"></a>
 <span class="sourceLineNo">827</span>    // Run the MR Job<a name="line.827"></a>
 <span class="sourceLineNo">828</span>    if (!job.waitForCompletion(true)) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>      // TODO: Replace the fixed string with job.getStatus().getFailureInfo()<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      // when it will be available on all the supported versions.<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      throw new ExportSnapshotException("Copy Files Map-Reduce Job failed");<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    }<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  }<a name="line.833"></a>
-<span class="sourceLineNo">834</span><a name="line.834"></a>
-<span class="sourceLineNo">835</span>  private void verifySnapshot(final Configuration baseConf,<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      final FileSystem fs, final Path rootDir, final Path snapshotDir) throws IOException {<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    // Update the conf with the current root dir, since may be a different cluster<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    Configuration conf = new Configuration(baseConf);<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    FSUtils.setRootDir(conf, rootDir);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    FSUtils.setFsDefault(conf, FSUtils.getRootDir(conf));<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    SnapshotDescription snapshotDesc = SnapshotDescriptionUtils.readSnapshotInfo(fs, snapshotDir);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    SnapshotReferenceUtil.verifySnapshot(conf, fs, snapshotDir, snapshotDesc);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>  }<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>   * Set path ownership.<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   */<a name="line.847"></a>
-<span class="sourceLineNo">848</span>  private void setOwner(final FileSystem fs, final Path path, final String user,<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      final String group, final boolean recursive) throws IOException {<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    if (user != null || group != null) {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.851"></a>
-<span class="sourceLineNo">852</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          setOwner(fs, child.getPath(), user, group, recursive);<a name="line.853"></a>
-<span class="sourceLineNo">854</span>        }<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      }<a name="line.855"></a>
-<span class="sourceLineNo">856</span>      fs.setOwner(path, user, group);<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    }<a name="line.857"></a>
-<span class="sourceLineNo">858</span>  }<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>  /**<a name="line.860"></a>
-<span class="sourceLineNo">861</span>   * Set path permission.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   */<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  private void setPermission(final FileSystem fs, final Path path, final short filesMode,<a name="line.863"></a>
-<span class="sourceLineNo">864</span>      final boolean recursive) throws IOException {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (filesMode &gt; 0) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      FsPermission perm = new FsPermission(filesMode);<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>          setPermission(fs, child.getPath(), filesMode, recursive);<a name="line.869"></a>
-<span class="sourceLineNo">870</span>        }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      fs.setPermission(path, perm);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>    }<a name="line.873"></a>
-<span class="sourceLineNo">874</span>  }<a name="line.874"></a>
-<span class="sourceLineNo">875</span><a name="line.875"></a>
-<span class="sourceLineNo">876</span>  private boolean verifyTarget = true;<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  private boolean verifyChecksum = true;<a name="line.877"></a>
-<span class="sourceLineNo">878</span>  private String snapshotName = null;<a name="line.878"></a>
-<span class="sourceLineNo">879</span>  private String targetName = null;<a name="line.879"></a>
-<span class="sourceLineNo">880</span>  private boolean overwrite = false;<a name="line.880"></a>
-<span class="sourceLineNo">881</span>  private String filesGroup = null;<a name="line.881"></a>
-<span class="sourceLineNo">882</span>  private String filesUser = null;<a name="line.882"></a>
-<span class="sourceLineNo">883</span>  private Path outputRoot = null;<a name="line.883"></a>
-<span class="sourceLineNo">884</span>  private Path inputRoot = null;<a name="line.884"></a>
-<span class="sourceLineNo">885</span>  private int bandwidthMB = Integer.MAX_VALUE;<a name="line.885"></a>
-<span class="sourceLineNo">886</span>  private int filesMode = 0;<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  private int mappers = 0;<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  @Override<a name="line.889"></a>
-<span class="sourceLineNo">890</span>  protected void processOptions(CommandLine cmd) {<a name="line.890"></a>
-<span class="sourceLineNo">891</span>    snapshotName = cmd.getOptionValue(Options.SNAPSHOT.getLongOpt(), snapshotName);<a name="line.891"></a>
-<span class="sourceLineNo">892</span>    targetName = cmd.getOptionValue(Options.TARGET_NAME.getLongOpt(), targetName);<a name="line.892"></a>
-<span class="sourceLineNo">893</span>    if (cmd.hasOption(Options.COPY_TO.getLongOpt())) {<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      outputRoot = new Path(cmd.getOptionValue(Options.COPY_TO.getLongOpt()));<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    if (cmd.hasOption(Options.COPY_FROM.getLongOpt())) {<a name="line.896"></a>
-<span class="sourceLineNo">897</span>      inputRoot = new Path(cmd.getOptionValue(Options.COPY_FROM.getLongOpt()));<a name="line.897"></a>
-<span class="sourceLineNo">898</span>    }<a name="line.898"></a>
-<span class="sourceLineNo">899</span>    mappers = getOptionAsInt(cmd, Options.MAPPERS.getLongOpt(), mappers);<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    filesUser = cmd.getOptionValue(Options.CHUSER.getLongOpt(), filesUser);<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    filesGroup = cmd.getOptionValue(Options.CHGROUP.getLongOpt(), filesGroup);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>    filesMode = getOptionAsInt(cmd, Options.CHMOD.getLongOpt(), filesMode);<a name="line.902"></a>
-<span class="sourceLineNo">903</span>    bandwidthMB = getOptionAsInt(cmd, Options.BANDWIDTH.getLongOpt(), bandwidthMB);<a name="line.903"></a>
-<span class="sourceLineNo">904</span>    overwrite = cmd.hasOption(Options.OVERWRITE.getLongOpt());<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    // And verifyChecksum and verifyTarget with values read from old args in processOldArgs(...).<a name="line.905"></a>
-<span class="sourceLineNo">906</span>    verifyChecksum = !cmd.hasOption(Options.NO_CHECKSUM_VERIFY.getLongOpt());<a name="line.906"></a>
-<span class="sourceLineNo">907</span>    verifyTarget = !cmd.hasOption(Options.NO_TARGET_VERIFY.getLongOpt());<a name="line.907"></a>
-<span class="sourceLineNo">908</span>  }<a name="line.908"></a>
-<span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>  /**<a name="line.910"></a>
-<span class="sourceLineNo">911</span>   * Execute the export snapshot by copying the snapshot metadata, hfiles and wals.<a name="line.911"></a>
-<span class="sourceLineNo">912</span>   * @return 0 on success, and != 0 upon failure.<a name="line.912"></a>
-<span class="sourceLineNo">913</span>   */<a name="line.913"></a>
-<span class="sourceLineNo">914</span>  @Override<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  public int doWork() throws IOException {<a name="line.915"></a>
-<span class="sourceLineNo">916</span>    Configuration conf = getConf();<a name="line.916"></a>
-<span class="sourceLineNo">917</span><a name="line.917"></a>
-<span class="sourceLineNo">918</span>    // Check user options<a name="line.918"></a>
-<span class="sourceLineNo">919</span>    if (snapshotName == null) {<a name="line.919"></a>
-<span class="sourceLineNo">920</span>      System.err.println("Snapshot name not provided.");<a name="line.920"></a>
-<span class="sourceLineNo">921</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      return 0;<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    }<a name="line.923"></a>
-<span class="sourceLineNo">924</span><a name="line.924"></a>
-<span class="sourceLineNo">925</span>    if (outputRoot == null) {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>      System.err.println("Destination file-system (--" + Options.COPY_TO.getLongOpt()<a name="line.926"></a>
-<span class="sourceLineNo">927</span>              + ") not provided.");<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      return 0;<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    }<a name="line.930"></a>
-<span class="sourceLineNo">931</span><a name="line.931"></a>
-<span class="sourceLineNo">932</span>    if (targetName == null) {<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      targetName = snapshotName;<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    }<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    if (inputRoot == null) {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>      inputRoot = FSUtils.getRootDir(conf);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    } else {<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      FSUtils.setRootDir(conf, inputRoot);<a name="line.938"></a>
-<span class="sourceLineNo">939</span>    }<a name="line.939"></a>
-<span class="sourceLineNo">940</span><a name="line.940"></a>
-<span class="sourceLineNo">941</span>    Configuration srcConf = HBaseConfiguration.createClusterConf(conf, null, CONF_SOURCE_PREFIX);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>    srcConf.setBoolean("fs." + inputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    FileSystem inputFs = FileSystem.get(inputRoot.toUri(), srcConf);<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    LOG.debug("inputFs=" + inputFs.getUri().toString() + " inputRoot=" + inputRoot);<a name="line.944"></a>
-<span class="sourceLineNo">945</span>    Configuration destConf = HBaseConfiguration.createClusterConf(conf, null, CONF_DEST_PREFIX);<a name="line.945"></a>
-<span class="sourceLineNo">946</span>    destConf.setBoolean("fs." + outputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.946"></a>
-<span class="sourceLineNo">947</span>    FileSystem outputFs = FileSystem.get(outputRoot.toUri(), destConf);<a name="line.947"></a>
-<span class="sourceLineNo">948</span>    LOG.debug("outputFs=" + outputFs.getUri().toString() + " outputRoot=" + outputRoot.toString());<a name="line.948"></a>
+<span class="sourceLineNo">829</span>      throw new ExportSnapshotException(job.getStatus().getFailureInfo());<a name="line.829"></a>
+<span class="sourceLineNo">830</span>    }<a name="line.830"></a>
+<span class="sourceLineNo">831</span>  }<a name="line.831"></a>
+<span class="sourceLineNo">832</span><a name="line.832"></a>
+<span class="sourceLineNo">833</span>  private void verifySnapshot(final Configuration baseConf,<a name="line.833"></a>
+<span class="sourceLineNo">834</span>      final FileSystem fs, final Path rootDir, final Path snapshotDir) throws IOException {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    // Update the conf with the current root dir, since may be a different cluster<a name="line.835"></a>
+<span class="sourceLineNo">836</span>    Configuration conf = new Configuration(baseConf);<a name="line.836"></a>
+<span class="sourceLineNo">837</span>    FSUtils.setRootDir(conf, rootDir);<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    FSUtils.setFsDefault(conf, FSUtils.getRootDir(conf));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>    SnapshotDescription snapshotDesc = SnapshotDescriptionUtils.readSnapshotInfo(fs, snapshotDir);<a name="line.839"></a>
+<span class="sourceLineNo">840</span>    SnapshotReferenceUtil.verifySnapshot(conf, fs, snapshotDir, snapshotDesc);<a name="line.840"></a>
+<span class="sourceLineNo">841</span>  }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>  /**<a name="line.843"></a>
+<span class="sourceLineNo">844</span>   * Set path ownership.<a name="line.844"></a>
+<span class="sourceLineNo">845</span>   */<a name="line.845"></a>
+<span class="sourceLineNo">846</span>  private void setOwner(final FileSystem fs, final Path path, final String user,<a name="line.846"></a>
+<span class="sourceLineNo">847</span>      final String group, final boolean recursive) throws IOException {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    if (user != null || group != null) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>          setOwner(fs, child.getPath(), user, group, recursive);<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span>      }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>      fs.setOwner(path, user, group);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>    }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>  }<a name="line.856"></a>
+<span class="sourceLineNo">857</span><a name="line.857"></a>
+<span class="sourceLineNo">858</span>  /**<a name="line.858"></a>
+<span class="sourceLineNo">859</span>   * Set path permission.<a name="line.859"></a>
+<span class="sourceLineNo">860</span>   */<a name="line.860"></a>
+<span class="sourceLineNo">861</span>  private void setPermission(final FileSystem fs, final Path path, final short filesMode,<a name="line.861"></a>
+<span class="sourceLineNo">862</span>      final boolean recursive) throws IOException {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>    if (filesMode &gt; 0) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>      FsPermission perm = new FsPermission(filesMode);<a name="line.864"></a>
+<span class="sourceLineNo">865</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>          setPermission(fs, child.getPath(), filesMode, recursive);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>        }<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>      fs.setPermission(path, perm);<a name="line.870"></a>
+<span class="sourceLineNo">871</span>    }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>  }<a name="line.872"></a>
+<span class="sourceLineNo">873</span><a name="line.873"></a>
+<span class="sourceLineNo">874</span>  private boolean verifyTarget = true;<a name="line.874"></a>
+<span class="sourceLineNo">875</span>  private boolean verifyChecksum = true;<a name="line.875"></a>
+<span class="sourceLineNo">876</span>  private String snapshotName = null;<a name="line.876"></a>
+<span class="sourceLineNo">877</span>  private String targetName = null;<a name="line.877"></a>
+<span class="sourceLineNo">878</span>  private boolean overwrite = false;<a name="line.878"></a>
+<span class="sourceLineNo">879</span>  private String filesGroup = null;<a name="line.879"></a>
+<span class="sourceLineNo">880</span>  private String filesUser = null;<a name="line.880"></a>
+<span class="sourceLineNo">881</span>  private Path outputRoot = null;<a name="line.881"></a>
+<span class="sourceLineNo">882</span>  private Path inputRoot = null;<a name="line.882"></a>
+<span class="sourceLineNo">883</span>  private int bandwidthMB = Integer.MAX_VALUE;<a name="line.883"></a>
+<span class="sourceLineNo">884</span>  private int filesMode = 0;<a name="line.884"></a>
+<span class="sourceLineNo">885</span>  private int mappers = 0;<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>  @Override<a name="line.887"></a>
+<span class="sourceLineNo">888</span>  protected void processOptions(CommandLine cmd) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    snapshotName = cmd.getOptionValue(Options.SNAPSHOT.getLongOpt(), snapshotName);<a name="line.889"></a>
+<span class="sourceLineNo">890</span>    targetName = cmd.getOptionValue(Options.TARGET_NAME.getLongOpt(), targetName);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>    if (cmd.hasOption(Options.COPY_TO.getLongOpt())) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>      outputRoot = new Path(cmd.getOptionValue(Options.COPY_TO.getLongOpt()));<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    }<a name="line.893"></a>
+<span class="sourceLineNo">894</span>    if (cmd.hasOption(Options.COPY_FROM.getLongOpt())) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>      inputRoot = new Path(cmd.getOptionValue(Options.COPY_FROM.getLongOpt()));<a name="line.895"></a>
+<span class="sourceLineNo">896</span>    }<a name="line.896"></a>
+<span class="sourceLineNo">897</span>    mappers = getOptionAsInt(cmd, Options.MAPPERS.getLongOpt(), mappers);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    filesUser = cmd.getOptionValue(Options.CHUSER.getLongOpt(), filesUser);<a name="line.898"></a>
+<span class="sourceLineNo">899</span>    filesGroup = cmd.getOptionValue(Options.CHGROUP.getLongOpt(), filesGroup);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>    filesMode = getOptionAsInt(cmd, Options.CHMOD.getLongOpt(), filesMode);<a name="line.900"></a>
+<span class="sourceLineNo">901</span>    bandwidthMB = getOptionAsInt(cmd, Options.BANDWIDTH.getLongOpt(), bandwidthMB);<a name="line.901"></a>
+<span class="sourceLineNo">902</span>    overwrite = cmd.hasOption(Options.OVERWRITE.getLongOpt());<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    // And verifyChecksum and verifyTarget with values read from old args in processOldArgs(...).<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    verifyChecksum = !cmd.hasOption(Options.NO_CHECKSUM_VERIFY.getLongOpt());<a name="line.904"></a>
+<span class="sourceLineNo">905</span>    verifyTarget = !cmd.hasOption(Options.NO_TARGET_VERIFY.getLongOpt());<a name="line.905"></a>
+<span class="sourceLineNo">906</span>  }<a name="line.906"></a>
+<span class="sourceLineNo">907</span><a name="line.907"></a>
+<span class="sourceLineNo">908</span>  /**<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   * Execute the export snapshot by copying the snapshot metadata, hfiles and wals.<a name="line.909"></a>
+<span class="sourceLineNo">910</span>   * @return 0 on success, and != 0 upon failure.<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>  @Override<a name="line.912"></a>
+<span class="sourceLineNo">913</span>  public int doWork() throws IOException {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    Configuration conf = getConf();<a name="line.914"></a>
+<span class="sourceLineNo">915</span><a name="line.915"></a>
+<span class="sourceLineNo">916</span>    // Check user options<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    if (snapshotName == null) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>      System.err.println("Snapshot name not provided.");<a name="line.918"></a>
+<span class="sourceLineNo">919</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.919"></a>
+<span class="sourceLineNo">920</span>      return 0;<a name="line.920"></a>
+<span class="sourceLineNo">921</span>    }<a name="line.921"></a>
+<span class="sourceLineNo">922</span><a name="line.922"></a>
+<span class="sourceLineNo">923</span>    if (outputRoot == null) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>      System.err.println("Destination file-system (--" + Options.COPY_TO.getLongOpt()<a name="line.924"></a>
+<span class="sourceLineNo">925</span>              + ") not provided.");<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      return 0;<a name="line.927"></a>
+<span class="sourceLineNo">928</span>    }<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>    if (targetName == null) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      targetName = snapshotName;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    if (inputRoot == null) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      inputRoot = FSUtils.getRootDir(conf);<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    } else {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>      FSUtils.setRootDir(conf, inputRoot);<a name="line.936"></a>
+<span class="sourceLineNo">937</span>    }<a name="line.937"></a>
+<span class="sourceLineNo">938</span><a name="line.938"></a>
+<span class="sourceLineNo">939</span>    Configuration srcConf = HBaseConfiguration.createClusterConf(conf, null, CONF_SOURCE_PREFIX);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    srcConf.setBoolean("fs." + inputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    FileSystem inputFs = FileSystem.get(inputRoot.toUri(), srcConf);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>    LOG.debug("inputFs=" + inputFs.getUri().toString() + " inputRoot=" + inputRoot);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>    Configuration destConf = HBaseConfiguration.createClusterConf(conf, null, CONF_DEST_PREFIX);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>    destConf.setBoolean("fs." + outputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>    FileSystem outputFs = FileSystem.get(outputRoot.toUri(), destConf);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    LOG.debug("outputFs=" + outputFs.getUri().toString() + " outputRoot=" + outputRoot.toString());<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>    boolean skipTmp = conf.getBoolean(CONF_SKIP_TMP, false);<a name="line.948"></a>
 <span class="sourceLineNo">949</span><a name="line.949"></a>
-<span class="sourceLineNo">950</span>    boolean skipTmp = conf.getBoolean(CONF_SKIP_TMP, false);<a name="line.950"></a>
-<span class="sourceLineNo">951</span><a name="line.951"></a>
-<span class="sourceLineNo">952</span>    Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshotName, inputRoot);<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    Path snapshotTmpDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(targetName, outputRoot);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    Path outputSnapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(targetName, outputRoot);<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    Path initialOutputSnapshotDir = skipTmp ? outputSnapshotDir : snapshotTmpDir;<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>    // Find the necessary directory which need to change owner and group<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    Path needSetOwnerDir = SnapshotDescriptionUtils.getSnapshotRootDir(outputRoot);<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    if (outputFs.exists(needSetOwnerDir)) {<a name="line.959"></a>
-<span class="sourceLineNo">960</span>      if (skipTmp) {<a name="line.960"></a>
-<span class="sourceLineNo">961</span>        needSetOwnerDir = outputSnapshotDir;<a name="line.961"></a>
-<span class="sourceLineNo">962</span>      } else {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>        needSetOwnerDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(outputRoot);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>        if (outputFs.exists(needSetOwnerDir)) {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>          needSetOwnerDir = snapshotTmpDir;<a name="line.965"></a>
-<span class="sourceLineNo">966</span>        }<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
-<span class="sourceLineNo">969</span><a name="line.969"></a>
-<span class="sourceLineNo">970</span>    // Check if the snapshot already exists<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (outputFs.exists(outputSnapshotDir)) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      if (overwrite) {<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        if (!outputFs.delete(outputSnapshotDir, true)) {<a name="line.973"></a>
-<span class="sourceLineNo">974</span>          System.err.println("Unable to remove existing snapshot directory: " + outputSnapshotDir);<a name="line.974"></a>
-<span class="sourceLineNo">975</span>          return 1;<a name="line.975"></a>
-<span class="sourceLineNo">976</span>        }<a name="line.976"></a>
-<span class="sourceLineNo">977</span>      } else {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>        System.err.println("The snapshot '" + targetName +<a name="line.978"></a>
-<span class="sourceLineNo">979</span>          "' already exists in the destination: " + outputSnapshotDir);<a name="line.979"></a>
-<span class="sourceLineNo">980</span>        return 1;<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      }<a name="line.981"></a>
-<span class="sourceLineNo">982</span>    }<a name="line.982"></a>
-<span class="sourceLineNo">983</span><a name="line.983"></a>
-<span class="sourceLineNo">984</span>    if (!skipTmp) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      // Check if the snapshot already in-progress<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      if (outputFs.exists(snapshotTmpDir)) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>        if (overwrite) {<a name="line.987"></a>
-<span class="sourceLineNo">988</span>          if (!outputFs.delete(snapshotTmpDir, true)) {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            System.err.println("Unable to remove existing snapshot tmp directory: "+snapshotTmpDir);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>            return 1;<a name="line.990"></a>
-<span class="sourceLineNo">991</span>          }<a name="line.991"></a>
-<span class="sourceLineNo">992</span>        } else {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>          System.err.println("A snapshot with the same name '"+ targetName +"' may be in-progress");<a name="line.993"></a>
-<span class="sourceLineNo">994</span>          System.err.println("Please check "+snapshotTmpDir+". If the snapshot has completed, ");<a name="line.994"></a>
-<span class="sourceLineNo">995</span>          System.err.println("consider removing "+snapshotTmpDir+" by using the -overwrite option");<a name="line.995"></a>
-<span class="sourceLineNo">996</span>          return 1;<a name="line.996"></a>
-<span class="sourceLineNo">997</span>        }<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      }<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span><a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // Step 1 - Copy fs1:/.snapshot/&lt;snapshot&gt; to  fs2:/.snapshot/.tmp/&lt;snapshot&gt;<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // The snapshot references must be copied before the hfiles otherwise the cleaner<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    // will remove them because they are unreferenced.<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      LOG.info("Copy Snapshot Manifest");<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      FileUtil.copy(inputFs, snapshotDir, outputFs, initialOutputSnapshotDir, false, false, conf);<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    } catch (IOException e) {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      throw new ExportSnapshotException("Failed to copy the snapshot directory: from=" +<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>        snapshotDir + " to=" + initialOutputSnapshotDir, e);<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    } finally {<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      if (filesUser != null || filesGroup != null) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        LOG.warn((filesUser == null ? "" : "Change the owner of " + needSetOwnerDir + " to "<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>            + filesUser)<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>            + (filesGroup == null ? "" : ", Change the group of " + needSetOwnerDir + " to "<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>            + filesGroup));<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        setOwner(outputFs, needSetOwnerDir, filesUser, filesGroup, true);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>      }<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      if (filesMode &gt; 0) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>        LOG.warn("Change the permission of " + needSetOwnerDir + " to " + filesMode);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        setPermission(outputFs, needSetOwnerDir, (short)filesMode, true);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    }<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span><a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    // Write a new .snapshotinfo if the target name is different from the source name<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    if (!targetName.equals(snapshotName)) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      SnapshotDescription snapshotDesc =<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>        SnapshotDescriptionUtils.readSnapshotInfo(inputFs, snapshotDir)<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>          .toBuilder()<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          .setName(targetName)<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>          .build();<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>      SnapshotDescriptionUtils.writeSnapshotInfo(snapshotDesc, initialOutputSnapshotDir, outputFs);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>      if (filesUser != null || filesGroup != null) {<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>        outputFs.setOwner(new Path(initialOutputSnapshotDir,<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), filesUser, filesGroup);<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>      }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>      if (filesMode &gt; 0) {<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>        outputFs.setPermission(new Path(initialOutputSnapshotDir,<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), new FsPermission((short)filesMode));<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>      }<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>    // Step 2 - Start MR Job to copy files<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    // The snapshot references must be copied before the files otherwise the files gets removed<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>    // by the HFileArchiver, since they have no references.<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>    try {<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>      runCopyJob(inputRoot, outputRoot, snapshotName, snapshotDir, verifyChecksum,<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>                 filesUser, filesGroup, filesMode, mappers, bandwidthMB);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span><a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      LOG.info("Finalize the Snapshot Export");<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>      if (!skipTmp) {<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>        // Step 3 - Rename fs2:/.snapshot/.tmp/&lt;snapshot&gt; fs2:/.snapshot/&lt;snapshot&gt;<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        if (!outputFs.rename(snapshotTmpDir, outputSnapshotDir)) {<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>          throw new ExportSnapshotException("Unable to rename snapshot directory from=" +<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>            snapshotTmpDir + " to=" + outputSnapshotDir);<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        }<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>      }<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span><a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>      // Step 4 - Verify snapshot integrity<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>      if (verifyTarget) {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>        LOG.info("Verify snapshot integrity");<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>        verifySnapshot(destConf, outputFs, outputRoot, outputSnapshotDir);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>      }<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span><a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>      LOG.info("Export Completed: " + targetName);<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>      return 0;<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>    } catch (Exception e) {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>      LOG.error("Snapshot export failed", e);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>      if (!skipTmp) {<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>        outputFs.delete(snapshotTmpDir, true);<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      }<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>      outputFs.delete(outputSnapshotDir, true);<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      return 1;<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    } finally {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      IOUtils.closeStream(inputFs);<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>      IOUtils.closeStream(outputFs);<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>    }<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>  @Override<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  protected void printUsage() {<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    super.printUsage();<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    System.out.println("\n"<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>        + "Examples:\n"<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        + "  hbase snapshot export \\\n"<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        + "    --snapshot MySnapshot --copy-to hdfs://srv2:8082/hbase \\\n"<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>        + "    --chuser MyUser --chgroup MyGroup --chmod 700 --mappers 16\n"<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        + "\n"<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>        + "  hbase snapshot export \\\n"<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>        + "    --snapshot MySnapshot --copy-from hdfs://srv2:8082/hbase \\\n"<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        + "    --copy-to hdfs://srv1:50070/hbase");<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>  @Override protected void addOptions() {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    addRequiredOption(Options.SNAPSHOT);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    addOption(Options.COPY_TO);<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>    addOption(Options.COPY_FROM);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    addOption(Options.TARGET_NAME);<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    addOption(Options.NO_CHECKSUM_VERIFY);<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>    addOption(Options.NO_TARGET_VERIFY);<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>    addOption(Options.OVERWRITE);<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    addOption(Options.CHUSER);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    addOption(Options.CHGROUP);<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    addOption(Options.CHMOD);<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    addOption(Options.MAPPERS);<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>    addOption(Options.BANDWIDTH);<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  }<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span><a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>  public static void main(String[] args) {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    new ExportSnapshot().doStaticMain(args);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>  }<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>}<a name="line.1111"></a>
+<span class="sourceLineNo">950</span>    Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshotName, inputRoot);<a name="line.950"></a>
+<span class="sourceLineNo">951</span>    Path snapshotTmpDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(targetName, outputRoot);<a name="line.951"></a>
+<span class="sourceLineNo">952</span>    Path outputSnapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(targetName, outputRoot);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>    Path initialOutputSnapshotDir = skipTmp ? outputSnapshotDir : snapshotTmpDir;<a name="line.953"></a>
+<span class="sourceLineNo">954</span><a name="line.954"></a>
+<span class="sourceLineNo">955</span>    // Find the necessary directory which need to change owner and group<a name="line.955"></a>
+<span class="sourceLineNo">956</span>    Path needSetOwnerDir = SnapshotDescriptionUtils.getSnapshotRootDir(outputRoot);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    if (outputFs.exists(needSetOwnerDir)) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>      if (skipTmp) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        needSetOwnerDir = outputSnapshotDir;<a name="line.959"></a>
+<span class="sourceLineNo">960</span>      } else {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        needSetOwnerDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(outputRoot);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>        if (outputFs.exists(needSetOwnerDir)) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>          needSetOwnerDir = snapshotTmpDir;<a name="line.963"></a>
+<span class="sourceLineNo">964</span>        }<a name="line.964"></a>
+<span class="sourceLineNo">965</span>      }<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    }<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>    // Check if the snapshot already exists<a name="line.968"></a>
+<span class="sourceLineNo">969</span>    if (outputFs.exists(outputSnapshotDir)) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>      if (overwrite) {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>        if (!outputFs.delete(outputSnapshotDir, true)) {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>          System.err.println("Unable to remove existing snapshot directory: " + outputSnapshotDir);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>          return 1;<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>      } else {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>        System.err.println("The snapshot '" + targetName +<a name="line.976"></a>
+<span class="sourceLineNo">977</span>          "' already exists in the destination: " + outputSnapshotDir);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        return 1;<a name="line.978"></a>
+<span class="sourceLineNo">979</span>      }<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    if (!skipTmp) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>      // Check if the snapshot already in-progress<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      if (outputFs.exists(snapshotTmpDir)) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>        if (overwrite) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>          if (!outputFs.delete(snapshotTmpDir, true)) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>            System.err.println("Unable to remove existing snapshot tmp directory: "+snapshotTmpDir);<a name="line.987"></a>
+<span class="sourceLineNo">988</span>            return 1;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>          }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>        } else {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>          System.err.println("A snapshot with the same name '"+ targetName +"' may be in-progress");<a name="line.991"></a>
+<span class="sourceLineNo">992</span>          System.err.println("Please check "+snapshotTmpDir+". If the snapshot has completed, ");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>          System.err.println("consider removing "+snapshotTmpDir+" by using the -overwrite option");<a name="line.993"></a>
+<span class="sourceLineNo">994</span>          return 1;<a name="line.994"></a>
+<span class="sourceLineNo">995</span>        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>      }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    }<a name="line.997"></a>
+<span class="sourceLineNo">998</span><a name="line.998"></a>
+<span class="sourceLineNo">999</span>    // Step 1 - Copy fs1:/.snapshot/&lt;snapshot&gt; to  fs2:/.snapshot/.tmp/&lt;snapshot&gt;<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    // The snapshot references must be copied before the hfiles otherwise the cleaner<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    // will remove them because they are unreferenced.<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>    try {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>      LOG.info("Copy Snapshot Manifest");<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      FileUtil.copy(inputFs, snapshotDir, outputFs, initialOutputSnapshotDir, false, false, conf);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    } catch (IOException e) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      throw new ExportSnapshotException("Failed to copy the snapshot directory: from=" +<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        snapshotDir + " to=" + initialOutputSnapshotDir, e);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    } finally {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      if (filesUser != null || filesGroup != null) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>        LOG.warn((filesUser == null ? "" : "Change the owner of " + needSetOwnerDir + " to "<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>            + filesUser)<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>            + (filesGroup == null ? "" : ", Change the group of " + needSetOwnerDir + " to "<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>            + filesGroup));<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        setOwner(outputFs, needSetOwnerDir, filesUser, filesGroup, true);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>      }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      if (filesMode &gt; 0) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>        LOG.warn("Change the permission of " + needSetOwnerDir + " to " + filesMode);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        setPermission(outputFs, needSetOwnerDir, (short)filesMode, true);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>      }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    }<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span><a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>    // Write a new .snapshotinfo if the target name is different from the source name<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>    if (!targetName.equals(snapshotName)) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>      SnapshotDescription snapshotDesc =<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>        SnapshotDescriptionUtils.readSnapshotInfo(inputFs, snapshotDir)<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>          .toBuilder()<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>          .setName(targetName)<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>          .build();<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      SnapshotDescriptionUtils.writeSnapshotInfo(snapshotDesc, initialOutputSnapshotDir, outputFs);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      if (filesUser != null || filesGroup != null) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        outputFs.setOwner(new Path(initialOutputSnapshotDir,<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), filesUser, filesGroup);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>      }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>      if (filesMode &gt; 0) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        outputFs.setPermission(new Path(initialOutputSnapshotDir,<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), new FsPermission((short)filesMode));<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>      }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>    }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>    // Step 2 - Start MR Job to copy files<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>    // The snapshot references must be copied before the files otherwise the files gets removed<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>    // by the HFileArchiver, since they have no references.<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>    try {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>      runCopyJob(inputRoot, outputRoot, snapshotName, snapshotDir, verifyChecksum,<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                 filesUser, filesGroup, filesMode, mappers, bandwidthMB);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span><a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>      LOG.info("Finalize the Snapshot Export");<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      if (!skipTmp) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        // Step 3 - Rename fs2:/.snapshot/.tmp/&lt;snapshot&gt; fs2:/.snapshot/&lt;snapshot&gt;<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        if (!outputFs.rename(snapshotTmpDir, outputSnapshotDir)) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>          throw new ExportSnapshotException("Unable to rename snapshot directory from=" +<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>            snapshotTmpDir + " to=" + outputSnapshotDir);<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span><a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>      // Step 4 - Verify snapshot integrity<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      if (verifyTarget) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        LOG.info("Verify snapshot integrity");<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        verifySnapshot(destConf, outputFs, outputRoot, outputSnapshotDir);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>      }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      LOG.info("Export Completed: " + targetName);<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      return 0;<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>    } catch (Exception e) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>      LOG.error("Snapshot export failed", e);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      if (!skipTmp) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        outputFs.delete(snapshotTmpDir, true);<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      }<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      outputFs.delete(outputSnapshotDir, true);<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      return 1;<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>    } finally {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      IOUtils.closeStream(inputFs);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>      IOUtils.closeStream(outputFs);<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    }<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  @Override<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>  protected void printUsage() {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    super.printUsage();<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    System.out.println("\n"<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        + "Examples:\n"<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>        + "  hbase snapshot export \\\n"<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>        + "    --snapshot MySnapshot --copy-to hdfs://srv2:8082/hbase \\\n"<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        + "    --chuser MyUser --chgroup MyGroup --chmod 700 --mappers 16\n"<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>        + "\n"<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>        + "  hbase snapshot export \\\n"<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>        + "    --snapshot MySnapshot --copy-from hdfs://srv2:8082/hbase \\\n"<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        + "    --copy-to hdfs://srv1:50070/hbase");<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>  @Override protected void addOptions() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    addRequiredOption(Options.SNAPSHOT);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    addOption(Options.COPY_TO);<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>    addOption(Options.COPY_FROM);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>    addOption(Options.TARGET_NAME);<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>    addOption(Options.NO_CHECKSUM_VERIFY);<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>    addOption(Options.NO_TARGET_VERIFY);<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>    addOption(Options.OVERWRITE);<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>    addOption(Options.CHUSER);<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>    addOption(Options.CHGROUP);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>    addOption(Options.CHMOD);<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>    addOption(Options.MAPPERS);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    addOption(Options.BANDWIDTH);<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>  }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span><a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>  public static void main(String[] args) {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    new ExportSnapshot().doStaticMain(args);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  }<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>}<a name="line.1109"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index 4f16da2..4c780c6 100644
--- a/book.html
+++ b/book.html
@@ -35075,7 +35075,7 @@ The server will return cellblocks compressed using this same compressor as long
 <div id="footer">
 <div id="footer-text">
 Version 3.0.0-SNAPSHOT<br>
-Last updated 2017-09-04 14:29:36 UTC
+Last updated 2017-09-05 14:29:38 UTC
 </div>
 </div>
 </body>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index 04e6cde..1885ab0 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -311,7 +311,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: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 7c9b1fd..ec9d416 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -7141,12 +7141,12 @@
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#JavadocTagContinuationIndentation">JavadocTagContinuationIndentation</a>
 <ul>
 <li>offset: <tt>&quot;2&quot;</tt></li></ul></td>
-<td>766</td>
+<td>761</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#NonEmptyAtclauseDescription">NonEmptyAtclauseDescription</a></td>
-<td>3230</td>
+<td>3235</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td>misc</td>
@@ -13110,7 +13110,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 43 has parse error. Missed HTML close tag 'TableName'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>179</td></tr>
 <tr class="a">
@@ -16962,7 +16962,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 64 has parse error. Missed HTML close tag 'code'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>2084</td></tr>
 <tr class="a">
@@ -22611,7 +22611,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 37 has parse error. Details: no viable alternative at input '&lt;ColumnFamily,' while parsing HTML_ELEMENT</td>
 <td>29</td></tr></table></div>
 <div class="section">
@@ -53202,7 +53202,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 60 has parse error. Missed HTML close tag 'Comparable'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>28</td></tr>
 <tr class="a">
@@ -56163,7 +56163,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 0 has parse error. Unrecognized error from ANTLR parser: null</td>
 <td>73</td></tr>
 <tr class="b">
@@ -81677,13 +81677,13 @@
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 163 lines (max allowed is 150).</td>
-<td>914</td></tr>
+<td>912</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 102).</td>
-<td>954</td></tr></table></div>
+<td>952</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.snapshot.RestoreSnapshotHelper.java">org/apache/hadoop/hbase/snapshot/RestoreSnapshotHelper.java</h3>
 <table border="0" class="table table-striped">
@@ -96669,7 +96669,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index 6fc0bf4..3d24561 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Code of Conduct Policy
@@ -380,7 +380,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: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/cygwin.html
----------------------------------------------------------------------
diff --git a/cygwin.html b/cygwin.html
index c21e3ca..80581dc 100644
--- a/cygwin.html
+++ b/cygwin.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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Installing Apache HBase (TM) on Windows using Cygwin</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -679,7 +679,7 @@ Now your <b>HBase </b>server is running, <b>start coding</b> and build that next
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index dc8c7c8..0733f8e 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -445,7 +445,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html
index 118372c..5b15bc9 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -1640,16 +1640,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Java.net - The Source for Java Technology Collaboration</p>
 <p><b>URL: </b><a class="externalLink" href="http://jsp.java.net">http://jsp.java.net</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish.web:javax.servlet.jsp:jar:2.3.2 (test) <img id="_img87" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep86', '_img87' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep86" style="display:none">
-<table border="0" class="table table-striped">
-<tr class="a">
-<th>JSP implementation</th></tr>
-<tr class="b">
-<td>
-<p><b>Description: </b>Java.net - The Source for Java Technology Collaboration</p>
-<p><b>URL: </b><a class="externalLink" href="http://jsp.java.net">http://jsp.java.net</a></p>
-<p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty.orbit:javax.servlet.jsp.jstl:jar:1.2.0.v201105211821 (test) <img id="_img89" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep88', '_img89' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep88" style="display:none">
+<li>org.eclipse.jetty.orbit:javax.servlet.jsp.jstl:jar:1.2.0.v201105211821 (test) <img id="_img87" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep86', '_img87' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep86" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty Orbit :: JSP JSTL</th></tr>
@@ -1659,7 +1650,7 @@ built on Jackson JSON processor</p>
     it is an osgi bundle and is signed as well.</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-orbit/javax.servlet.jsp.jstl">http://www.eclipse.org/jetty/jetty-orbit/javax.servlet.jsp.jstl</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.glassfish.web:javax.servlet.jsp.jstl:jar:1.2.2 (test) <img id="_img91" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep90', '_img91' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep90" style="display:none">
+<li>org.glassfish.web:javax.servlet.jsp.jstl:jar:1.2.2 (test) <img id="_img89" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep88', '_img89' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep88" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>JavaServer Pages (TM) TagLib Implementation</th></tr>
@@ -1668,7 +1659,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Java.net - The Source for Java Technology Collaboration</p>
 <p><b>URL: </b><a class="externalLink" href="http://jstl.java.net">http://jstl.java.net</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish:javax.el:jar:3.0.0 (test) <img id="_img93" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep92', '_img93' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep92" style="display:none">
+<li>org.glassfish:javax.el:jar:3.0.0 (test) <img id="_img91" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep90', '_img91' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep90" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Expression Language 3.0</th></tr>
@@ -1677,7 +1668,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Java.net - The Source for Java Technology Collaboration</p>
 <p><b>URL: </b><a class="externalLink" href="http://el-spec.java.net">http://el-spec.java.net</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty.orbit:org.eclipse.jdt.core:jar:3.8.2.v20130121 (test) <img id="_img95" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep94', '_img95' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep94" style="display:none">
+<li>org.eclipse.jetty.orbit:org.eclipse.jdt.core:jar:3.8.2.v20130121 (test) <img id="_img93" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep92', '_img93' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep92" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty Orbit :: JDT Compiler</th></tr>
@@ -1688,7 +1679,7 @@ built on Jackson JSON processor</p>
     org.eclipse.jdt.core.compiler.batch_3.8.2.v20130121-145325</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-orbit/org.eclipse.jdt.core">http://www.eclipse.org/jetty/jetty-orbit/org.eclipse.jdt.core</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.eclipse.jetty:jetty-webapp:jar:9.4.6.v20170531 (test) <img id="_img97" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep96', '_img97' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep96" style="display:none">
+<li>org.eclipse.jetty:jetty-webapp:jar:9.4.6.v20170531 (test) <img id="_img95" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep94', '_img95' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep94" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Webapp Application Support</th></tr>
@@ -1698,7 +1689,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div>
 <ul>
-<li>org.eclipse.jetty:jetty-xml:jar:9.4.6.v20170531 (test) <img id="_img99" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep98', '_img99' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep98" style="display:none">
+<li>org.eclipse.jetty:jetty-xml:jar:9.4.6.v20170531 (test) <img id="_img97" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep96', '_img97' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep96" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: XML utilities</th></tr>
@@ -1707,7 +1698,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>The jetty xml utilities.</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.eclipse.jetty:jetty-http:jar:9.4.6.v20170531 (test) <img id="_img101" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep100', '_img101' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep100" style="display:none">
+<li>org.eclipse.jetty:jetty-http:jar:9.4.6.v20170531 (test) <img id="_img99" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep98', '_img99' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep98" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Http Utility</th></tr>
@@ -1716,7 +1707,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>The Eclipse Jetty Project</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty:jetty-security:jar:9.4.6.v20170531 (test) <img id="_img103" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep102', '_img103' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep102" style="display:none">
+<li>org.eclipse.jetty:jetty-security:jar:9.4.6.v20170531 (test) <img id="_img101" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep100', '_img101' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep100" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Security</th></tr>
@@ -1725,7 +1716,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Jetty security infrastructure</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1 (test) <img id="_img105" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep104', '_img105' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep104" style="display:none">
+<li>org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1 (test) <img id="_img103" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep102', '_img103' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep102" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-container-servlet-core</th></tr>
@@ -1735,7 +1726,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/project/jersey-container-servlet-core/">https://jersey.java.net/project/jersey-container-servlet-core/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div>
 <ul>
-<li>org.glassfish.hk2.external:javax.inject:jar:2.5.0-b32 (test) <img id="_img107" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep106', '_img107' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep106" style="display:none">
+<li>org.glassfish.hk2.external:javax.inject:jar:2.5.0-b32 (test) <img id="_img105" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep104', '_img105' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep104" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>javax.inject:1 as OSGi bundle</th></tr>
@@ -1744,7 +1735,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Injection API (JSR 330) version ${javax.inject.version} repackaged as OSGi bundle</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/external/javax.inject">https://hk2.java.net/external/javax.inject</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish.jersey.core:jersey-common:jar:2.25.1 (test) <img id="_img109" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep108', '_img109' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep108" style="display:none">
+<li>org.glassfish.jersey.core:jersey-common:jar:2.25.1 (test) <img id="_img107" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep106', '_img107' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep106" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-core-common</th></tr>
@@ -1754,7 +1745,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-common/">https://jersey.java.net/jersey-common/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div>
 <ul>
-<li>javax.annotation:javax.annotation-api:jar:1.2 (test) <img id="_img111" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep110', '_img111' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep110" style="display:none">
+<li>javax.annotation:javax.annotation-api:jar:1.2 (test) <img id="_img109" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep108', '_img109' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep108" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>javax.annotation API</th></tr>
@@ -1763,7 +1754,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Common Annotations for the JavaTM Platform API</p>
 <p><b>URL: </b><a class="externalLink" href="http://jcp.org/en/jsr/detail?id=250">http://jcp.org/en/jsr/detail?id=250</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.25.1 (test) <img id="_img113" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep112', '_img113' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep112" style="display:none">
+<li>org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.25.1 (test) <img id="_img111" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep110', '_img111' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep110" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-repackaged-guava</th></tr>
@@ -1772,7 +1763,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Jersey Guava Repackaged</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/project/project/jersey-guava/">https://jersey.java.net/project/project/jersey-guava/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div></li>
-<li>org.glassfish.hk2:hk2-api:jar:2.5.0-b32 (test) <img id="_img115" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep114', '_img115' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep114" style="display:none">
+<li>org.glassfish.hk2:hk2-api:jar:2.5.0-b32 (test) <img id="_img113" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep112', '_img113' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep112" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>HK2 API module</th></tr>
@@ -1782,7 +1773,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/hk2-api">https://hk2.java.net/hk2-api</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div>
 <ul>
-<li>org.glassfish.hk2:hk2-utils:jar:2.5.0-b32 (test) <img id="_img117" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep116', '_img117' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep116" style="display:none">
+<li>org.glassfish.hk2:hk2-utils:jar:2.5.0-b32 (test) <img id="_img115" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep114', '_img115' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep114" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>HK2 Implementation Utilities</th></tr>
@@ -1791,7 +1782,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>HK2 Implementation Utilities</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/hk2-utils">https://hk2.java.net/hk2-utils</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish.hk2.external:aopalliance-repackaged:jar:2.5.0-b32 (test) <img id="_img119" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep118', '_img119' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep118" style="display:none">
+<li>org.glassfish.hk2.external:aopalliance-repackaged:jar:2.5.0-b32 (test) <img id="_img117" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep116', '_img117' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep116" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>aopalliance version 1.0 repackaged as a module</th></tr>
@@ -1800,7 +1791,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Dependency Injection Kernel</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/external/aopalliance-repackaged">https://hk2.java.net/external/aopalliance-repackaged</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li></ul></li>
-<li>org.glassfish.hk2:hk2-locator:jar:2.5.0-b32 (test) <img id="_img121" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep120', '_img121' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep120" style="display:none">
+<li>org.glassfish.hk2:hk2-locator:jar:2.5.0-b32 (test) <img id="_img119" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep118', '_img119' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep118" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>ServiceLocator Default Implementation</th></tr>
@@ -1810,7 +1801,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/hk2-locator">https://hk2.java.net/hk2-locator</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div>
 <ul>
-<li>org.javassist:javassist:jar:3.20.0-GA (test) <img id="_img123" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep122', '_img123' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep122" style="display:none">
+<li>org.javassist:javassist:jar:3.20.0-GA (test) <img id="_img121" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep120', '_img121' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep120" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Javassist</th></tr>
@@ -1820,7 +1811,7 @@ built on Jackson JSON processor</p>
     simple.  It is a class library for editing bytecodes in Java.</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.javassist.org/">http://www.javassist.org/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.mozilla.org/MPL/MPL-1.1.html">MPL 1.1</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.apache.org/licenses/">Apache License 2.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.glassfish.hk2:osgi-resource-locator:jar:1.0.1 (test) <img id="_img125" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep124', '_img125' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep124" style="display:none">
+<li>org.glassfish.hk2:osgi-resource-locator:jar:1.0.1 (test) <img id="_img123" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep122', '_img123' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep122" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>OSGi resource locator bundle - used by various API providers that rely on META-INF/services mechanism to locate providers.</th></tr>
@@ -1829,7 +1820,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>See http://wiki.glassfish.java.net/Wiki.jsp?page=JdkSpiOsgi for more information</p>
 <p><b>URL: </b><a class="externalLink" href="http://glassfish.org/osgi-resource-locator/">http://glassfish.org/osgi-resource-locator/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li></ul></li>
-<li>org.glassfish.jersey.core:jersey-server:jar:2.25.1 (test) <img id="_img127" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep126', '_img127' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep126" style="display:none">
+<li>org.glassfish.jersey.core:jersey-server:jar:2.25.1 (test) <img id="_img125" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep124', '_img125' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep124" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-core-server</th></tr>
@@ -1839,7 +1830,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-server/">https://jersey.java.net/jersey-server/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div>
 <ul>
-<li>org.glassfish.jersey.core:jersey-client:jar:2.25.1 (test) <img id="_img129" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep128', '_img129' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep128" style="display:none">
+<li>org.glassfish.jersey.core:jersey-client:jar:2.25.1 (test) <img id="_img127" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep126', '_img127' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep126" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-core-client</th></tr>
@@ -1848,7 +1839,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Jersey core client implementation</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-client/">https://jersey.java.net/jersey-client/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div></li>
-<li>org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1 (test) <img id="_img131" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep130', '_img131' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep130" style="display:none">
+<li>org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1 (test) <img id="_img129" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep128', '_img129' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep128" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-media-jaxb</th></tr>
@@ -1857,7 +1848,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>JAX-RS features based upon JAX-B.</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/project/jersey-media-jaxb/">https://jersey.java.net/project/jersey-media-jaxb/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div></li>
-<li>javax.validation:validation-api:jar:1.1.0.Final (test) <img id="_img133" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep132', '_img133' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep132" style="display:none">
+<li>javax.validation:validation-api:jar:1.1.0.Final (test) <img id="_img131" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep130', '_img131' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep130" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Bean Validation API</th></tr>
@@ -1866,7 +1857,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Bean Validation API</p>
 <p><b>URL: </b><a class="externalLink" href="http://beanvalidation.org">http://beanvalidation.org</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li></ul></li>
-<li>org.glassfish.jersey.media:jersey-media-json-jackson1:jar:2.23.2 (test) <img id="_img135" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep134', '_img135' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep134" style="display:none">
+<li>org.glassfish.jersey.media:jersey-media-json-jackson1:jar:2.23.2 (test) <img id="_img133" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep132', '_img133' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep132" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-media-json-jackson1</th></tr>
@@ -1876,7 +1867,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/project/jersey-media-json-jackson1/">https://jersey.java.net/project/jersey-media-json-jackson1/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div>
 <ul>
-<li>org.codehaus.jackson:jackson-jaxrs:jar:1.9.13 (compile) <img id="_img137" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep136', '_img137' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep136" style="display:none">
+<li>org.codehaus.jackson:jackson-jaxrs:jar:1.9.13 (compile) <img id="_img135" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep134', '_img135' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep134" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>JAX-RS provider for JSON content type</th></tr>
@@ -1886,7 +1877,7 @@ built on Jackson JSON processor</p>
 Jackson JSON processor's data binding functionality.</p>
 <p><b>URL: </b><a class="externalLink" href="http://jackson.codehaus.org">http://jackson.codehaus.org</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></p></td></tr></table></div></li>
-<li>org.codehaus.jackson:jackson-xc:jar:1.9.13 (compile) <img id="_img139" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep138', '_img139' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep138" style="display:none">
+<li>org.codehaus.jackson:jackson-xc:jar:1.9.13 (compile) <img id="_img137" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep136', '_img137' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep136" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Xml Compatibility extensions for Jackson</th></tr>
@@ -1896,6 +1887,15 @@ Jackson JSON processor's data binding functionality.</p>
 Jackson JSON processor's data binding functionality.</p>
 <p><b>URL: </b><a class="externalLink" href="http://jackson.codehaus.org">http://jackson.codehaus.org</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></p></td></tr></table></div></li></ul></li>
+<li>org.glassfish.web:javax.servlet.jsp:jar:2.3.2 (test) <img id="_img139" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep138', '_img139' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep138" style="display:none">
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>JSP implementation</th></tr>
+<tr class="b">
+<td>
+<p><b>Description: </b>Java.net - The Source for Java Technology Collaboration</p>
+<p><b>URL: </b><a class="externalLink" href="http://jsp.java.net">http://jsp.java.net</a></p>
+<p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
 <li>org.codehaus.jackson:jackson-core-asl:jar:1.9.13 (compile) <img id="_img141" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep140', '_img141' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep140" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
@@ -4161,7 +4161,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
index 47bbef0..a151186 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
 <td>304</td></tr>
 <tr class="b">
 <th>Number of unique artifacts (NOA):</th>
-<td>329</td></tr>
+<td>330</td></tr>
 <tr class="a">
 <th>Number of version-conflicting artifacts (NOC):</th>
 <td>17</td></tr>
@@ -423,7 +423,7 @@
 <li>org.apache.hbase:hbase-endpoint:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-
 media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-examples:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-
 media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-external-blockcache:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.me
 dia:jersey-media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
-<li>org.apache.hbase:hbase-it:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-
 jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
+<li>org.apache.hbase:hbase-it:jar:3.0.0-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />|&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />\-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;\-&#16
 0;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br /></li><br />
 <li>org.apache.hbase:hbase-mapreduce:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey
 -media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-rest:jar:3.0.0-SNAPSHOT<br />\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-rsgroup:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-m
 edia-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
@@ -615,7 +615,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
index 9bdb220..297b34d 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
index 22b038a..52ca730 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -585,30 +585,36 @@
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
 <tr class="b">
+<td>org.glassfish.web</td>
+<td><a class="externalLink" href="http://jsp.java.net">javax.servlet.jsp</a></td>
+<td>2.3.2</td>
+<td>jar</td>
+<td><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
+<tr class="a">
 <td>org.jamon</td>
 <td><a class="externalLink" href="http://www.jamon.org/jamon-java-parent/jamon-runtime/">jamon-runtime</a></td>
 <td>2.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/2.0">Mozilla Public License Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby</td>
 <td><a class="externalLink" href="https://github.com/jruby/jruby/jruby-artifacts/jruby-complete">jruby-complete</a></td>
 <td>9.1.10.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.gnu.org/licenses/gpl-2.0-standalone.html">GPL 2</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1-standalone.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">EPL</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
 <td>1.7.24</td>
@@ -760,7 +766,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html
index e17078b..aa6431f 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html
index a3610be..010ad48 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
index f48354c..79db8c0 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html
index eab026d..c66523c 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -111,7 +111,7 @@
 <h2><a name="Project_Licenses"></a>Project Licenses</h2><a name="Project_Licenses"></a>
 <div class="section">
 <h3><a name="Apache_License_Version_2.0"></a>Apache License, Version 2.0</h3><a name="Apache_License_Version_2.0"></a>
-<p>Can't read the url [https://www.apache.org/licenses/LICENSE-2.0.txt] : Read timed out</p></div></div>
+<p>Can't read the url [https://www.apache.org/licenses/LICENSE-2.0.txt] : connect timed out</p></div></div>
                   </div>
           </div>
 
@@ -124,7 +124,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
index 1de3fcc..9bf79e0 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
index 246f1b7..b661351 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html
index 2891c3f..ef77c6a 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -226,7 +226,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html
index 121698e..e6b65dd 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html
index a86583b..095a713 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html
index e9d00e5..fb15414 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html
index df9cd45..7338c2e 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html
index b0b88f4..54872e4 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -529,7 +529,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/index.html b/hbase-build-configuration/hbase-archetypes/index.html
index f76b4f8..f37da12 100644
--- a/hbase-build-configuration/hbase-archetypes/index.html
+++ b/hbase-build-configuration/hbase-archetypes/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -135,7 +135,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/integration.html b/hbase-build-configuration/hbase-archetypes/integration.html
index 17bbfa5..7b8d88c 100644
--- a/hbase-build-configuration/hbase-archetypes/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/issue-tracking.html
index 06e791e..3cec126 100644
--- a/hbase-build-configuration/hbase-archetypes/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/license.html b/hbase-build-configuration/hbase-archetypes/license.html
index 293fc60..1e593bb 100644
--- a/hbase-build-configuration/hbase-archetypes/license.html
+++ b/hbase-build-configuration/hbase-archetypes/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/mail-lists.html b/hbase-build-configuration/hbase-archetypes/mail-lists.html
index 35c88f5..fdef235 100644
--- a/hbase-build-configuration/hbase-archetypes/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/plugin-management.html b/hbase-build-configuration/hbase-archetypes/plugin-management.html
index 534cfc9..b572204 100644
--- a/hbase-build-configuration/hbase-archetypes/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/plugins.html b/hbase-build-configuration/hbase-archetypes/plugins.html
index 3e49095..ab04b69 100644
--- a/hbase-build-configuration/hbase-archetypes/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -214,7 +214,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/project-info.html b/hbase-build-configuration/hbase-archetypes/project-info.html
index f470dd7..2e6f561 100644
--- a/hbase-build-configuration/hbase-archetypes/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/project-summary.html b/hbase-build-configuration/hbase-archetypes/project-summary.html
index f004d48..2f8f05b 100644
--- a/hbase-build-configuration/hbase-archetypes/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -163,7 +163,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/source-repository.html b/hbase-build-configuration/hbase-archetypes/source-repository.html
index cffaa1e..09dd856 100644
--- a/hbase-build-configuration/hbase-archetypes/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/team-list.html b/hbase-build-configuration/hbase-archetypes/team-list.html
index 4743f05..395de8d 100644
--- a/hbase-build-configuration/hbase-archetypes/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -529,7 +529,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-spark/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/checkstyle.html b/hbase-build-configuration/hbase-spark/checkstyle.html
index 10892b8..842552d 100644
--- a/hbase-build-configuration/hbase-spark/checkstyle.html
+++ b/hbase-build-configuration/hbase-spark/checkstyle.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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -412,7 +412,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-spark/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependencies.html b/hbase-build-configuration/hbase-spark/dependencies.html
index 28e8058..2305dcf 100644
--- a/hbase-build-configuration/hbase-spark/dependencies.html
+++ b/hbase-build-configuration/hbase-spark/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -3261,16 +3261,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Java.net - The Source for Java Technology Collaboration</p>
 <p><b>URL: </b><a class="externalLink" href="http://jsp.java.net">http://jsp.java.net</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish.web:javax.servlet.jsp:jar:2.3.2 (compile) <img id="_img335" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep334', '_img335' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep334" style="display:none">
-<table border="0" class="table table-striped">
-<tr class="a">
-<th>JSP implementation</th></tr>
-<tr class="b">
-<td>
-<p><b>Description: </b>Java.net - The Source for Java Technology Collaboration</p>
-<p><b>URL: </b><a class="externalLink" href="http://jsp.java.net">http://jsp.java.net</a></p>
-<p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty.orbit:javax.servlet.jsp.jstl:jar:1.2.0.v201105211821 (compile) <img id="_img337" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep336', '_img337' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep336" style="display:none">
+<li>org.eclipse.jetty.orbit:javax.servlet.jsp.jstl:jar:1.2.0.v201105211821 (compile) <img id="_img335" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep334', '_img335' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep334" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty Orbit :: JSP JSTL</th></tr>
@@ -3280,7 +3271,7 @@ The following provides more details on the included cryptographic software:
     it is an osgi bundle and is signed as well.</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-orbit/javax.servlet.jsp.jstl">http://www.eclipse.org/jetty/jetty-orbit/javax.servlet.jsp.jstl</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.glassfish.web:javax.servlet.jsp.jstl:jar:1.2.2 (compile) <img id="_img339" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep338', '_img339' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep338" style="display:none">
+<li>org.glassfish.web:javax.servlet.jsp.jstl:jar:1.2.2 (compile) <img id="_img337" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep336', '_img337' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep336" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>JavaServer Pages (TM) TagLib Implementation</th></tr>
@@ -3289,7 +3280,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Java.net - The Source for Java Technology Collaboration</p>
 <p><b>URL: </b><a class="externalLink" href="http://jstl.java.net">http://jstl.java.net</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish:javax.el:jar:3.0.0 (compile) <img id="_img341" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep340', '_img341' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep340" style="display:none">
+<li>org.glassfish:javax.el:jar:3.0.0 (compile) <img id="_img339" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep338', '_img339' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep338" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Expression Language 3.0</th></tr>
@@ -3298,7 +3289,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Java.net - The Source for Java Technology Collaboration</p>
 <p><b>URL: </b><a class="externalLink" href="http://el-spec.java.net">http://el-spec.java.net</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty.orbit:org.eclipse.jdt.core:jar:3.8.2.v20130121 (compile) <img id="_img343" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep342', '_img343' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep342" style="display:none">
+<li>org.eclipse.jetty.orbit:org.eclipse.jdt.core:jar:3.8.2.v20130121 (compile) <img id="_img341" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep340', '_img341' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep340" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty Orbit :: JDT Compiler</th></tr>
@@ -3309,7 +3300,7 @@ The following provides more details on the included cryptographic software:
     org.eclipse.jdt.core.compiler.batch_3.8.2.v20130121-145325</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-orbit/org.eclipse.jdt.core">http://www.eclipse.org/jetty/jetty-orbit/org.eclipse.jdt.core</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.eclipse.jetty:jetty-webapp:jar:9.4.6.v20170531 (compile) <img id="_img345" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep344', '_img345' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep344" style="display:none">
+<li>org.eclipse.jetty:jetty-webapp:jar:9.4.6.v20170531 (compile) <img id="_img343" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep342', '_img343' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep342" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Webapp Application Support</th></tr>
@@ -3319,7 +3310,7 @@ The following provides more details on the included cryptographic software:
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div>
 <ul>
-<li>org.eclipse.jetty:jetty-xml:jar:9.4.6.v20170531 (compile) <img id="_img347" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep346', '_img347' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep346" style="display:none">
+<li>org.eclipse.jetty:jetty-xml:jar:9.4.6.v20170531 (compile) <img id="_img345" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep344', '_img345' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep344" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: XML utilities</th></tr>
@@ -3328,7 +3319,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>The jetty xml utilities.</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.eclipse.jetty:jetty-http:jar:9.4.6.v20170531 (compile) <img id="_img349" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep348', '_img349' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep348" style="display:none">
+<li>org.eclipse.jetty:jetty-http:jar:9.4.6.v20170531 (compile) <img id="_img347" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep346', '_img347' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep346" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Http Utility</th></tr>
@@ -3337,7 +3328,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>The Eclipse Jetty Project</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty:jetty-security:jar:9.4.6.v20170531 (compile) <img id="_img351" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep350', '_img351' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep350" style="display:none">
+<li>org.eclipse.jetty:jetty-security:jar:9.4.6.v20170531 (compile) <img id="_img349" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep348', '_img349' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep348" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Security</th></tr>
@@ -3346,7 +3337,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Jetty security infrastructure</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1 (compile) <img id="_img353" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep352', '_img353' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep352" style="display:none">
+<li>org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1 (compile) <img id="_img351" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep350', '_img351' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep350" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-container-servlet-core</th></tr>
@@ -3356,7 +3347,7 @@ The following provides more details on the included cryptographic software:
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/project/jersey-container-servlet-core/">https://jersey.java.net/project/jersey-container-servlet-core/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div>
 <ul>
-<li>org.glassfish.hk2.external:javax.inject:jar:2.5.0-b32 (compile) <img id="_img355" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep354', '_img355' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep354" style="display:none">
+<li>org.glassfish.hk2.external:javax.inject:jar:2.5.0-b32 (compile) <img id="_img353" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep352', '_img353' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep352" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>javax.inject:1 as OSGi bundle</th></tr>
@@ -3365,7 +3356,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Injection API (JSR 330) version ${javax.inject.version} repackaged as OSGi bundle</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/external/javax.inject">https://hk2.java.net/external/javax.inject</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish.jersey.core:jersey-common:jar:2.25.1 (compile) <img id="_img357" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep356', '_img357' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep356" style="display:none">
+<li>org.glassfish.jersey.core:jersey-common:jar:2.25.1 (compile) <img id="_img355" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep354', '_img355' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep354" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-core-common</th></tr>
@@ -3375,7 +3366,7 @@ The following provides more details on the included cryptographic software:
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-common/">https://jersey.java.net/jersey-common/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div>
 <ul>
-<li>javax.annotation:javax.annotation-api:jar:1.2 (compile) <img id="_img359" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep358', '_img359' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep358" style="display:none">
+<li>javax.annotation:javax.annotation-api:jar:1.2 (compile) <img id="_img357" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep356', '_img357' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep356" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>javax.annotation API</th></tr>
@@ -3384,7 +3375,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Common Annotations for the JavaTM Platform API</p>
 <p><b>URL: </b><a class="externalLink" href="http://jcp.org/en/jsr/detail?id=250">http://jcp.org/en/jsr/detail?id=250</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.25.1 (compile) <img id="_img361" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep360', '_img361' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep360" style="display:none">
+<li>org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.25.1 (compile) <img id="_img359" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep358', '_img359' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep358" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-repackaged-guava</th></tr>
@@ -3393,7 +3384,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Jersey Guava Repackaged</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/project/project/jersey-guava/">https://jersey.java.net/project/project/jersey-guava/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div></li>
-<li>org.glassfish.hk2:hk2-api:jar:2.5.0-b32 (compile) <img id="_img363" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep362', '_img363' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep362" style="display:none">
+<li>org.glassfish.hk2:hk2-api:jar:2.5.0-b32 (compile) <img id="_img361" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep360', '_img361' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep360" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>HK2 API module</th></tr>
@@ -3403,7 +3394,7 @@ The following provides more details on the included cryptographic software:
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/hk2-api">https://hk2.java.net/hk2-api</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div>
 <ul>
-<li>org.glassfish.hk2:hk2-utils:jar:2.5.0-b32 (compile) <img id="_img365" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep364', '_img365' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep364" style="display:none">
+<li>org.glassfish.hk2:hk2-utils:jar:2.5.0-b32 (compile) <img id="_img363" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep362', '_img363' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep362" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>HK2 Implementation Utilities</th></tr>
@@ -3412,7 +3403,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>HK2 Implementation Utilities</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/hk2-utils">https://hk2.java.net/hk2-utils</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish.hk2.external:aopalliance-repackaged:jar:2.5.0-b32 (compile) <img id="_img367" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep366', '_img367' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep366" style="display:none">
+<li>org.glassfish.hk2.external:aopalliance-repackaged:jar:2.5.0-b32 (compile) <img id="_img365" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep364', '_img365' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep364" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>aopalliance version 1.0 repackaged as a module</th></tr>
@@ -3421,7 +3412,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Dependency Injection Kernel</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/external/aopalliance-repackaged">https://hk2.java.net/external/aopalliance-repackaged</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li></ul></li>
-<li>org.glassfish.hk2:hk2-locator:jar:2.5.0-b32 (compile) <img id="_img369" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep368', '_img369' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep368" style="display:none">
+<li>org.glassfish.hk2:hk2-locator:jar:2.5.0-b32 (compile) <img id="_img367" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep366', '_img367' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep366" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>ServiceLocator Default Implementation</th></tr>
@@ -3431,7 +3422,7 @@ The following provides more details on the included cryptographic software:
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/hk2-locator">https://hk2.java.net/hk2-locator</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div>
 <ul>
-<li>org.javassist:javassist:jar:3.20.0-GA (compile) <img id="_img371" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep370', '_img371' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep370" style="display:none">
+<li>org.javassist:javassist:jar:3.20.0-GA (compile) <img id="_img369" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep368', '_img369' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep368" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Javassist</th></tr>
@@ -3441,7 +3432,7 @@ The following provides more details on the included cryptographic software:
     simple.  It is a class library for editing bytecodes in Java.</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.javassist.org/">http://www.javassist.org/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.mozilla.org/MPL/MPL-1.1.html">MPL 1.1</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.apache.org/licenses/">Apache License 2.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.glassfish.hk2:osgi-resource-locator:jar:1.0.1 (compile) <img id="_img373" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep372', '_img373' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep372" style="display:none">
+<li>org.glassfish.hk2:osgi-resource-locator:jar:1.0.1 (compile) <img id="_img371" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep370', '_img371' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep370" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>OSGi resource locator bundle - used by various API providers that rely on META-INF/services mechanism to locate providers.</th></tr>
@@ -3450,7 +3441,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>See http://wiki.glassfish.java.net/Wiki.jsp?page=JdkSpiOsgi for more information</p>
 <p><b>URL: </b><a class="externalLink" href="http://glassfish.org/osgi-resource-locator/">http://glassfish.org/osgi-resource-locator/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li></ul></li>
-<li>org.glassfish.jersey.core:jersey-server:jar:2.25.1 (compile) <img id="_img375" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep374', '_img375' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep374" style="display:none">
+<li>org.glassfish.jersey.core:jersey-server:jar:2.25.1 (compile) <img id="_img373" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep372', '_img373' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep372" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-core-server</th></tr>
@@ -3460,7 +3451,7 @@ The following provides more details on the included cryptographic software:
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-server/">https://jersey.java.net/jersey-server/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div>
 <ul>
-<li>org.glassfish.jersey.core:jersey-client:jar:2.25.1 (compile) <img id="_img377" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep376', '_img377' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep376" style="display:none">
+<li>org.glassfish.jersey.core:jersey-client:jar:2.25.1 (compile) <img id="_img375" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep374', '_img375' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep374" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-core-client</th></tr>
@@ -3469,7 +3460,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Jersey core client implementation</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-client/">https://jersey.java.net/jersey-client/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div></li>
-<li>org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1 (compile) <img id="_img379" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep378', '_img379' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep378" style="display:none">
+<li>org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1 (compile) <img id="_img377" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep376', '_img377' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep376" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-media-jaxb</th></tr>
@@ -3478,7 +3469,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>JAX-RS features based upon JAX-B.</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/project/jersey-media-jaxb/">https://jersey.java.net/project/jersey-media-jaxb/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div></li>
-<li>javax.validation:validation-api:jar:1.1.0.Final (compile) <img id="_img381" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep380', '_img381' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep380" style="display:none">
+<li>javax.validation:validation-api:jar:1.1.0.Final (compile) <img id="_img379" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep378', '_img379' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep378" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Bean Validation API</th></tr>
@@ -3487,7 +3478,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Bean Validation API</p>
 <p><b>URL: </b><a class="externalLink" href="http://beanvalidation.org">http://beanvalidation.org</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li></ul></li>
-<li>org.glassfish.jersey.media:jersey-media-json-jackson1:jar:2.23.2 (compile) <img id="_img383" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep382', '_img383' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep382" style="display:none">
+<li>org.glassfish.jersey.media:jersey-media-json-jackson1:jar:2.23.2 (compile) <img id="_img381" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep380', '_img381' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep380" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-media-json-jackson1</th></tr>
@@ -3496,6 +3487,15 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Jersey JSON Jackson (1.x) entity providers support module.</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/project/jersey-media-json-jackson1/">https://jersey.java.net/project/jersey-media-json-jackson1/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div></li>
+<li>org.glassfish.web:javax.servlet.jsp:jar:2.3.2 (compile) <img id="_img383" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep382', '_img383' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep382" style="display:none">
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>JSP implementation</th></tr>
+<tr class="b">
+<td>
+<p><b>Description: </b>Java.net - The Source for Java Technology Collaboration</p>
+<p><b>URL: </b><a class="externalLink" href="http://jsp.java.net">http://jsp.java.net</a></p>
+<p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
 <li>org.codehaus.jettison:jettison:jar:1.3.8 (compile) <img id="_img385" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep384', '_img385' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep384" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
@@ -5738,7 +5738,7 @@ file comparators, endian transformation classes, and much more.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-spark/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependency-convergence.html b/hbase-build-configuration/hbase-spark/dependency-convergence.html
index f161232..aacb40c 100644
--- a/hbase-build-configuration/hbase-spark/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-spark/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
 <td>304</td></tr>
 <tr class="b">
 <th>Number of unique artifacts (NOA):</th>
-<td>329</td></tr>
+<td>330</td></tr>
 <tr class="a">
 <th>Number of version-conflicting artifacts (NOC):</th>
 <td>17</td></tr>
@@ -423,7 +423,7 @@
 <li>org.apache.hbase:hbase-endpoint:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-
 media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-examples:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-
 media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-external-blockcache:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.me
 dia:jersey-media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
-<li>org.apache.hbase:hbase-it:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-
 jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
+<li>org.apache.hbase:hbase-it:jar:3.0.0-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />|&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />\-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;\-&#16
 0;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br /></li><br />
 <li>org.apache.hbase:hbase-mapreduce:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey
 -media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-rest:jar:3.0.0-SNAPSHOT<br />\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-rsgroup:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-m
 edia-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
@@ -615,7 +615,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-spark/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependency-info.html b/hbase-build-configuration/hbase-spark/dependency-info.html
index 9844611..1c7f4b8 100644
--- a/hbase-build-configuration/hbase-spark/dependency-info.html
+++ b/hbase-build-configuration/hbase-spark/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-spark/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependency-management.html b/hbase-build-configuration/hbase-spark/dependency-management.html
index 05ac5dc..423b99d 100644
--- a/hbase-build-configuration/hbase-spark/dependency-management.html
+++ b/hbase-build-configuration/hbase-spark/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -585,30 +585,36 @@
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
 <tr class="b">
+<td>org.glassfish.web</td>
+<td><a class="externalLink" href="http://jsp.java.net">javax.servlet.jsp</a></td>
+<td>2.3.2</td>
+<td>jar</td>
+<td><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
+<tr class="a">
 <td>org.jamon</td>
 <td><a class="externalLink" href="http://www.jamon.org/jamon-java-parent/jamon-runtime/">jamon-runtime</a></td>
 <td>2.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/2.0">Mozilla Public License Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby</td>
 <td><a class="externalLink" href="https://github.com/jruby/jruby/jruby-artifacts/jruby-complete">jruby-complete</a></td>
 <td>9.1.10.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.gnu.org/licenses/gpl-2.0-standalone.html">GPL 2</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1-standalone.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">EPL</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
 <td>1.7.24</td>
@@ -760,7 +766,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-spark/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/index.html b/hbase-build-configuration/hbase-spark/index.html
index dc2f1d8..1b45f39 100644
--- a/hbase-build-configuration/hbase-spark/index.html
+++ b/hbase-build-configuration/hbase-spark/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-spark/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/integration.html b/hbase-build-configuration/hbase-spark/integration.html
index 1ae1272..534dab1 100644
--- a/hbase-build-configuration/hbase-spark/integration.html
+++ b/hbase-build-configuration/hbase-spark/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-spark/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/issue-tracking.html b/hbase-build-configuration/hbase-spark/issue-tracking.html
index d961977..25c7901 100644
--- a/hbase-build-configuration/hbase-spark/issue-tracking.html
+++ b/hbase-build-configuration/hbase-spark/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-spark/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/license.html b/hbase-build-configuration/hbase-spark/license.html
index 3d0c20b..bf5a6c1 100644
--- a/hbase-build-configuration/hbase-spark/license.html
+++ b/hbase-build-configuration/hbase-spark/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -111,209 +111,7 @@
 <h2><a name="Project_Licenses"></a>Project Licenses</h2><a name="Project_Licenses"></a>
 <div class="section">
 <h3><a name="Apache_License_Version_2.0"></a>Apache License, Version 2.0</h3><a name="Apache_License_Version_2.0"></a>
-<div class="source"><pre class="prettyprint">
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      &quot;License&quot; shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      &quot;Licensor&quot; shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      &quot;Legal Entity&quot; shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      &quot;control&quot; means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      &quot;You&quot; (or &quot;Your&quot;) shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      &quot;Source&quot; form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      &quot;Object&quot; form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      &quot;Work&quot; shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      &quot;Derivative Works&quot; shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      &quot;Contribution&quot; shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, &quot;submitted&quot;
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as &quot;Not a Contribution.&quot;
-
-      &quot;Contributor&quot; shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a &quot;NOTICE&quot; text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an &quot;AS IS&quot; BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets &quot;[]&quot;
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same &quot;printed page&quot; as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-</pre></div></div></div>
+<p>Can't read the url [https://www.apache.org/licenses/LICENSE-2.0.txt] : Read timed out</p></div></div>
                   </div>
           </div>
 
@@ -326,7 +124,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-spark/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/mail-lists.html b/hbase-build-configuration/hbase-spark/mail-lists.html
index a732411..ac95160 100644
--- a/hbase-build-configuration/hbase-spark/mail-lists.html
+++ b/hbase-build-configuration/hbase-spark/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-spark/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/plugin-management.html b/hbase-build-configuration/hbase-spark/plugin-management.html
index f105424..72c2925 100644
--- a/hbase-build-configuration/hbase-spark/plugin-management.html
+++ b/hbase-build-configuration/hbase-spark/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-spark/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/plugins.html b/hbase-build-configuration/hbase-spark/plugins.html
index aeac4d0..6f2e949 100644
--- a/hbase-build-configuration/hbase-spark/plugins.html
+++ b/hbase-build-configuration/hbase-spark/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -238,7 +238,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-spark/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/project-info.html b/hbase-build-configuration/hbase-spark/project-info.html
index 7edf3b1..348067b 100644
--- a/hbase-build-configuration/hbase-spark/project-info.html
+++ b/hbase-build-configuration/hbase-spark/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-spark/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/project-reports.html b/hbase-build-configuration/hbase-spark/project-reports.html
index e3f38ab..1b1393e 100644
--- a/hbase-build-configuration/hbase-spark/project-reports.html
+++ b/hbase-build-configuration/hbase-spark/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -131,7 +131,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-spark/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/project-summary.html b/hbase-build-configuration/hbase-spark/project-summary.html
index 74922a7..acc2719 100644
--- a/hbase-build-configuration/hbase-spark/project-summary.html
+++ b/hbase-build-configuration/hbase-spark/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-spark/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/source-repository.html b/hbase-build-configuration/hbase-spark/source-repository.html
index 6db9830..c37133d 100644
--- a/hbase-build-configuration/hbase-spark/source-repository.html
+++ b/hbase-build-configuration/hbase-spark/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-spark/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/team-list.html b/hbase-build-configuration/hbase-spark/team-list.html
index b5ce66f..618fa33 100644
--- a/hbase-build-configuration/hbase-spark/team-list.html
+++ b/hbase-build-configuration/hbase-spark/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -529,7 +529,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/index.html b/hbase-build-configuration/index.html
index b634089..72f530f 100644
--- a/hbase-build-configuration/index.html
+++ b/hbase-build-configuration/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/integration.html b/hbase-build-configuration/integration.html
index f393cc3..315b814 100644
--- a/hbase-build-configuration/integration.html
+++ b/hbase-build-configuration/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/issue-tracking.html b/hbase-build-configuration/issue-tracking.html
index f3b2a7d..9175001 100644
--- a/hbase-build-configuration/issue-tracking.html
+++ b/hbase-build-configuration/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/license.html b/hbase-build-configuration/license.html
index 61ddfa3..962d630 100644
--- a/hbase-build-configuration/license.html
+++ b/hbase-build-configuration/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/mail-lists.html b/hbase-build-configuration/mail-lists.html
index 1369ce4..7e5728d 100644
--- a/hbase-build-configuration/mail-lists.html
+++ b/hbase-build-configuration/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/plugin-management.html b/hbase-build-configuration/plugin-management.html
index 9170529..c3b4a22 100644
--- a/hbase-build-configuration/plugin-management.html
+++ b/hbase-build-configuration/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/plugins.html b/hbase-build-configuration/plugins.html
index 8b4f7b9..d6ee58f 100644
--- a/hbase-build-configuration/plugins.html
+++ b/hbase-build-configuration/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -214,7 +214,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/project-info.html b/hbase-build-configuration/project-info.html
index 43b9d6d..a5aa552 100644
--- a/hbase-build-configuration/project-info.html
+++ b/hbase-build-configuration/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/project-summary.html b/hbase-build-configuration/project-summary.html
index 43a7e9b..4731cb1 100644
--- a/hbase-build-configuration/project-summary.html
+++ b/hbase-build-configuration/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -163,7 +163,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/source-repository.html b/hbase-build-configuration/source-repository.html
index 343fe00..a733868 100644
--- a/hbase-build-configuration/source-repository.html
+++ b/hbase-build-configuration/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.Testing.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.Testing.html b/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.Testing.html
index a73c866..dd2d739 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.Testing.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.Testing.html
@@ -834,289 +834,287 @@
 <span class="sourceLineNo">826</span><a name="line.826"></a>
 <span class="sourceLineNo">827</span>    // Run the MR Job<a name="line.827"></a>
 <span class="sourceLineNo">828</span>    if (!job.waitForCompletion(true)) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>      // TODO: Replace the fixed string with job.getStatus().getFailureInfo()<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      // when it will be available on all the supported versions.<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      throw new ExportSnapshotException("Copy Files Map-Reduce Job failed");<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    }<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  }<a name="line.833"></a>
-<span class="sourceLineNo">834</span><a name="line.834"></a>
-<span class="sourceLineNo">835</span>  private void verifySnapshot(final Configuration baseConf,<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      final FileSystem fs, final Path rootDir, final Path snapshotDir) throws IOException {<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    // Update the conf with the current root dir, since may be a different cluster<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    Configuration conf = new Configuration(baseConf);<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    FSUtils.setRootDir(conf, rootDir);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    FSUtils.setFsDefault(conf, FSUtils.getRootDir(conf));<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    SnapshotDescription snapshotDesc = SnapshotDescriptionUtils.readSnapshotInfo(fs, snapshotDir);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    SnapshotReferenceUtil.verifySnapshot(conf, fs, snapshotDir, snapshotDesc);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>  }<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>   * Set path ownership.<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   */<a name="line.847"></a>
-<span class="sourceLineNo">848</span>  private void setOwner(final FileSystem fs, final Path path, final String user,<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      final String group, final boolean recursive) throws IOException {<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    if (user != null || group != null) {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.851"></a>
-<span class="sourceLineNo">852</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          setOwner(fs, child.getPath(), user, group, recursive);<a name="line.853"></a>
-<span class="sourceLineNo">854</span>        }<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      }<a name="line.855"></a>
-<span class="sourceLineNo">856</span>      fs.setOwner(path, user, group);<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    }<a name="line.857"></a>
-<span class="sourceLineNo">858</span>  }<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>  /**<a name="line.860"></a>
-<span class="sourceLineNo">861</span>   * Set path permission.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   */<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  private void setPermission(final FileSystem fs, final Path path, final short filesMode,<a name="line.863"></a>
-<span class="sourceLineNo">864</span>      final boolean recursive) throws IOException {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (filesMode &gt; 0) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      FsPermission perm = new FsPermission(filesMode);<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>          setPermission(fs, child.getPath(), filesMode, recursive);<a name="line.869"></a>
-<span class="sourceLineNo">870</span>        }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      fs.setPermission(path, perm);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>    }<a name="line.873"></a>
-<span class="sourceLineNo">874</span>  }<a name="line.874"></a>
-<span class="sourceLineNo">875</span><a name="line.875"></a>
-<span class="sourceLineNo">876</span>  private boolean verifyTarget = true;<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  private boolean verifyChecksum = true;<a name="line.877"></a>
-<span class="sourceLineNo">878</span>  private String snapshotName = null;<a name="line.878"></a>
-<span class="sourceLineNo">879</span>  private String targetName = null;<a name="line.879"></a>
-<span class="sourceLineNo">880</span>  private boolean overwrite = false;<a name="line.880"></a>
-<span class="sourceLineNo">881</span>  private String filesGroup = null;<a name="line.881"></a>
-<span class="sourceLineNo">882</span>  private String filesUser = null;<a name="line.882"></a>
-<span class="sourceLineNo">883</span>  private Path outputRoot = null;<a name="line.883"></a>
-<span class="sourceLineNo">884</span>  private Path inputRoot = null;<a name="line.884"></a>
-<span class="sourceLineNo">885</span>  private int bandwidthMB = Integer.MAX_VALUE;<a name="line.885"></a>
-<span class="sourceLineNo">886</span>  private int filesMode = 0;<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  private int mappers = 0;<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  @Override<a name="line.889"></a>
-<span class="sourceLineNo">890</span>  protected void processOptions(CommandLine cmd) {<a name="line.890"></a>
-<span class="sourceLineNo">891</span>    snapshotName = cmd.getOptionValue(Options.SNAPSHOT.getLongOpt(), snapshotName);<a name="line.891"></a>
-<span class="sourceLineNo">892</span>    targetName = cmd.getOptionValue(Options.TARGET_NAME.getLongOpt(), targetName);<a name="line.892"></a>
-<span class="sourceLineNo">893</span>    if (cmd.hasOption(Options.COPY_TO.getLongOpt())) {<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      outputRoot = new Path(cmd.getOptionValue(Options.COPY_TO.getLongOpt()));<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    if (cmd.hasOption(Options.COPY_FROM.getLongOpt())) {<a name="line.896"></a>
-<span class="sourceLineNo">897</span>      inputRoot = new Path(cmd.getOptionValue(Options.COPY_FROM.getLongOpt()));<a name="line.897"></a>
-<span class="sourceLineNo">898</span>    }<a name="line.898"></a>
-<span class="sourceLineNo">899</span>    mappers = getOptionAsInt(cmd, Options.MAPPERS.getLongOpt(), mappers);<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    filesUser = cmd.getOptionValue(Options.CHUSER.getLongOpt(), filesUser);<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    filesGroup = cmd.getOptionValue(Options.CHGROUP.getLongOpt(), filesGroup);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>    filesMode = getOptionAsInt(cmd, Options.CHMOD.getLongOpt(), filesMode);<a name="line.902"></a>
-<span class="sourceLineNo">903</span>    bandwidthMB = getOptionAsInt(cmd, Options.BANDWIDTH.getLongOpt(), bandwidthMB);<a name="line.903"></a>
-<span class="sourceLineNo">904</span>    overwrite = cmd.hasOption(Options.OVERWRITE.getLongOpt());<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    // And verifyChecksum and verifyTarget with values read from old args in processOldArgs(...).<a name="line.905"></a>
-<span class="sourceLineNo">906</span>    verifyChecksum = !cmd.hasOption(Options.NO_CHECKSUM_VERIFY.getLongOpt());<a name="line.906"></a>
-<span class="sourceLineNo">907</span>    verifyTarget = !cmd.hasOption(Options.NO_TARGET_VERIFY.getLongOpt());<a name="line.907"></a>
-<span class="sourceLineNo">908</span>  }<a name="line.908"></a>
-<span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>  /**<a name="line.910"></a>
-<span class="sourceLineNo">911</span>   * Execute the export snapshot by copying the snapshot metadata, hfiles and wals.<a name="line.911"></a>
-<span class="sourceLineNo">912</span>   * @return 0 on success, and != 0 upon failure.<a name="line.912"></a>
-<span class="sourceLineNo">913</span>   */<a name="line.913"></a>
-<span class="sourceLineNo">914</span>  @Override<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  public int doWork() throws IOException {<a name="line.915"></a>
-<span class="sourceLineNo">916</span>    Configuration conf = getConf();<a name="line.916"></a>
-<span class="sourceLineNo">917</span><a name="line.917"></a>
-<span class="sourceLineNo">918</span>    // Check user options<a name="line.918"></a>
-<span class="sourceLineNo">919</span>    if (snapshotName == null) {<a name="line.919"></a>
-<span class="sourceLineNo">920</span>      System.err.println("Snapshot name not provided.");<a name="line.920"></a>
-<span class="sourceLineNo">921</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      return 0;<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    }<a name="line.923"></a>
-<span class="sourceLineNo">924</span><a name="line.924"></a>
-<span class="sourceLineNo">925</span>    if (outputRoot == null) {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>      System.err.println("Destination file-system (--" + Options.COPY_TO.getLongOpt()<a name="line.926"></a>
-<span class="sourceLineNo">927</span>              + ") not provided.");<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      return 0;<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    }<a name="line.930"></a>
-<span class="sourceLineNo">931</span><a name="line.931"></a>
-<span class="sourceLineNo">932</span>    if (targetName == null) {<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      targetName = snapshotName;<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    }<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    if (inputRoot == null) {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>      inputRoot = FSUtils.getRootDir(conf);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    } else {<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      FSUtils.setRootDir(conf, inputRoot);<a name="line.938"></a>
-<span class="sourceLineNo">939</span>    }<a name="line.939"></a>
-<span class="sourceLineNo">940</span><a name="line.940"></a>
-<span class="sourceLineNo">941</span>    Configuration srcConf = HBaseConfiguration.createClusterConf(conf, null, CONF_SOURCE_PREFIX);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>    srcConf.setBoolean("fs." + inputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    FileSystem inputFs = FileSystem.get(inputRoot.toUri(), srcConf);<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    LOG.debug("inputFs=" + inputFs.getUri().toString() + " inputRoot=" + inputRoot);<a name="line.944"></a>
-<span class="sourceLineNo">945</span>    Configuration destConf = HBaseConfiguration.createClusterConf(conf, null, CONF_DEST_PREFIX);<a name="line.945"></a>
-<span class="sourceLineNo">946</span>    destConf.setBoolean("fs." + outputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.946"></a>
-<span class="sourceLineNo">947</span>    FileSystem outputFs = FileSystem.get(outputRoot.toUri(), destConf);<a name="line.947"></a>
-<span class="sourceLineNo">948</span>    LOG.debug("outputFs=" + outputFs.getUri().toString() + " outputRoot=" + outputRoot.toString());<a name="line.948"></a>
+<span class="sourceLineNo">829</span>      throw new ExportSnapshotException(job.getStatus().getFailureInfo());<a name="line.829"></a>
+<span class="sourceLineNo">830</span>    }<a name="line.830"></a>
+<span class="sourceLineNo">831</span>  }<a name="line.831"></a>
+<span class="sourceLineNo">832</span><a name="line.832"></a>
+<span class="sourceLineNo">833</span>  private void verifySnapshot(final Configuration baseConf,<a name="line.833"></a>
+<span class="sourceLineNo">834</span>      final FileSystem fs, final Path rootDir, final Path snapshotDir) throws IOException {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    // Update the conf with the current root dir, since may be a different cluster<a name="line.835"></a>
+<span class="sourceLineNo">836</span>    Configuration conf = new Configuration(baseConf);<a name="line.836"></a>
+<span class="sourceLineNo">837</span>    FSUtils.setRootDir(conf, rootDir);<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    FSUtils.setFsDefault(conf, FSUtils.getRootDir(conf));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>    SnapshotDescription snapshotDesc = SnapshotDescriptionUtils.readSnapshotInfo(fs, snapshotDir);<a name="line.839"></a>
+<span class="sourceLineNo">840</span>    SnapshotReferenceUtil.verifySnapshot(conf, fs, snapshotDir, snapshotDesc);<a name="line.840"></a>
+<span class="sourceLineNo">841</span>  }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>  /**<a name="line.843"></a>
+<span class="sourceLineNo">844</span>   * Set path ownership.<a name="line.844"></a>
+<span class="sourceLineNo">845</span>   */<a name="line.845"></a>
+<span class="sourceLineNo">846</span>  private void setOwner(final FileSystem fs, final Path path, final String user,<a name="line.846"></a>
+<span class="sourceLineNo">847</span>      final String group, final boolean recursive) throws IOException {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    if (user != null || group != null) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>          setOwner(fs, child.getPath(), user, group, recursive);<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span>      }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>      fs.setOwner(path, user, group);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>    }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>  }<a name="line.856"></a>
+<span class="sourceLineNo">857</span><a name="line.857"></a>
+<span class="sourceLineNo">858</span>  /**<a name="line.858"></a>
+<span class="sourceLineNo">859</span>   * Set path permission.<a name="line.859"></a>
+<span class="sourceLineNo">860</span>   */<a name="line.860"></a>
+<span class="sourceLineNo">861</span>  private void setPermission(final FileSystem fs, final Path path, final short filesMode,<a name="line.861"></a>
+<span class="sourceLineNo">862</span>      final boolean recursive) throws IOException {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>    if (filesMode &gt; 0) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>      FsPermission perm = new FsPermission(filesMode);<a name="line.864"></a>
+<span class="sourceLineNo">865</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>          setPermission(fs, child.getPath(), filesMode, recursive);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>        }<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>      fs.setPermission(path, perm);<a name="line.870"></a>
+<span class="sourceLineNo">871</span>    }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>  }<a name="line.872"></a>
+<span class="sourceLineNo">873</span><a name="line.873"></a>
+<span class="sourceLineNo">874</span>  private boolean verifyTarget = true;<a name="line.874"></a>
+<span class="sourceLineNo">875</span>  private boolean verifyChecksum = true;<a name="line.875"></a>
+<span class="sourceLineNo">876</span>  private String snapshotName = null;<a name="line.876"></a>
+<span class="sourceLineNo">877</span>  private String targetName = null;<a name="line.877"></a>
+<span class="sourceLineNo">878</span>  private boolean overwrite = false;<a name="line.878"></a>
+<span class="sourceLineNo">879</span>  private String filesGroup = null;<a name="line.879"></a>
+<span class="sourceLineNo">880</span>  private String filesUser = null;<a name="line.880"></a>
+<span class="sourceLineNo">881</span>  private Path outputRoot = null;<a name="line.881"></a>
+<span class="sourceLineNo">882</span>  private Path inputRoot = null;<a name="line.882"></a>
+<span class="sourceLineNo">883</span>  private int bandwidthMB = Integer.MAX_VALUE;<a name="line.883"></a>
+<span class="sourceLineNo">884</span>  private int filesMode = 0;<a name="line.884"></a>
+<span class="sourceLineNo">885</span>  private int mappers = 0;<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>  @Override<a name="line.887"></a>
+<span class="sourceLineNo">888</span>  protected void processOptions(CommandLine cmd) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    snapshotName = cmd.getOptionValue(Options.SNAPSHOT.getLongOpt(), snapshotName);<a name="line.889"></a>
+<span class="sourceLineNo">890</span>    targetName = cmd.getOptionValue(Options.TARGET_NAME.getLongOpt(), targetName);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>    if (cmd.hasOption(Options.COPY_TO.getLongOpt())) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>      outputRoot = new Path(cmd.getOptionValue(Options.COPY_TO.getLongOpt()));<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    }<a name="line.893"></a>
+<span class="sourceLineNo">894</span>    if (cmd.hasOption(Options.COPY_FROM.getLongOpt())) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>      inputRoot = new Path(cmd.getOptionValue(Options.COPY_FROM.getLongOpt()));<a name="line.895"></a>
+<span class="sourceLineNo">896</span>    }<a name="line.896"></a>
+<span class="sourceLineNo">897</span>    mappers = getOptionAsInt(cmd, Options.MAPPERS.getLongOpt(), mappers);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    filesUser = cmd.getOptionValue(Options.CHUSER.getLongOpt(), filesUser);<a name="line.898"></a>
+<span class="sourceLineNo">899</span>    filesGroup = cmd.getOptionValue(Options.CHGROUP.getLongOpt(), filesGroup);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>    filesMode = getOptionAsInt(cmd, Options.CHMOD.getLongOpt(), filesMode);<a name="line.900"></a>
+<span class="sourceLineNo">901</span>    bandwidthMB = getOptionAsInt(cmd, Options.BANDWIDTH.getLongOpt(), bandwidthMB);<a name="line.901"></a>
+<span class="sourceLineNo">902</span>    overwrite = cmd.hasOption(Options.OVERWRITE.getLongOpt());<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    // And verifyChecksum and verifyTarget with values read from old args in processOldArgs(...).<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    verifyChecksum = !cmd.hasOption(Options.NO_CHECKSUM_VERIFY.getLongOpt());<a name="line.904"></a>
+<span class="sourceLineNo">905</span>    verifyTarget = !cmd.hasOption(Options.NO_TARGET_VERIFY.getLongOpt());<a name="line.905"></a>
+<span class="sourceLineNo">906</span>  }<a name="line.906"></a>
+<span class="sourceLineNo">907</span><a name="line.907"></a>
+<span class="sourceLineNo">908</span>  /**<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   * Execute the export snapshot by copying the snapshot metadata, hfiles and wals.<a name="line.909"></a>
+<span class="sourceLineNo">910</span>   * @return 0 on success, and != 0 upon failure.<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>  @Override<a name="line.912"></a>
+<span class="sourceLineNo">913</span>  public int doWork() throws IOException {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    Configuration conf = getConf();<a name="line.914"></a>
+<span class="sourceLineNo">915</span><a name="line.915"></a>
+<span class="sourceLineNo">916</span>    // Check user options<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    if (snapshotName == null) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>      System.err.println("Snapshot name not provided.");<a name="line.918"></a>
+<span class="sourceLineNo">919</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.919"></a>
+<span class="sourceLineNo">920</span>      return 0;<a name="line.920"></a>
+<span class="sourceLineNo">921</span>    }<a name="line.921"></a>
+<span class="sourceLineNo">922</span><a name="line.922"></a>
+<span class="sourceLineNo">923</span>    if (outputRoot == null) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>      System.err.println("Destination file-system (--" + Options.COPY_TO.getLongOpt()<a name="line.924"></a>
+<span class="sourceLineNo">925</span>              + ") not provided.");<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      return 0;<a name="line.927"></a>
+<span class="sourceLineNo">928</span>    }<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>    if (targetName == null) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      targetName = snapshotName;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    if (inputRoot == null) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      inputRoot = FSUtils.getRootDir(conf);<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    } else {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>      FSUtils.setRootDir(conf, inputRoot);<a name="line.936"></a>
+<span class="sourceLineNo">937</span>    }<a name="line.937"></a>
+<span class="sourceLineNo">938</span><a name="line.938"></a>
+<span class="sourceLineNo">939</span>    Configuration srcConf = HBaseConfiguration.createClusterConf(conf, null, CONF_SOURCE_PREFIX);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    srcConf.setBoolean("fs." + inputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    FileSystem inputFs = FileSystem.get(inputRoot.toUri(), srcConf);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>    LOG.debug("inputFs=" + inputFs.getUri().toString() + " inputRoot=" + inputRoot);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>    Configuration destConf = HBaseConfiguration.createClusterConf(conf, null, CONF_DEST_PREFIX);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>    destConf.setBoolean("fs." + outputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>    FileSystem outputFs = FileSystem.get(outputRoot.toUri(), destConf);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    LOG.debug("outputFs=" + outputFs.getUri().toString() + " outputRoot=" + outputRoot.toString());<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>    boolean skipTmp = conf.getBoolean(CONF_SKIP_TMP, false);<a name="line.948"></a>
 <span class="sourceLineNo">949</span><a name="line.949"></a>
-<span class="sourceLineNo">950</span>    boolean skipTmp = conf.getBoolean(CONF_SKIP_TMP, false);<a name="line.950"></a>
-<span class="sourceLineNo">951</span><a name="line.951"></a>
-<span class="sourceLineNo">952</span>    Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshotName, inputRoot);<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    Path snapshotTmpDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(targetName, outputRoot);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    Path outputSnapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(targetName, outputRoot);<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    Path initialOutputSnapshotDir = skipTmp ? outputSnapshotDir : snapshotTmpDir;<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>    // Find the necessary directory which need to change owner and group<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    Path needSetOwnerDir = SnapshotDescriptionUtils.getSnapshotRootDir(outputRoot);<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    if (outputFs.exists(needSetOwnerDir)) {<a name="line.959"></a>
-<span class="sourceLineNo">960</span>      if (skipTmp) {<a name="line.960"></a>
-<span class="sourceLineNo">961</span>        needSetOwnerDir = outputSnapshotDir;<a name="line.961"></a>
-<span class="sourceLineNo">962</span>      } else {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>        needSetOwnerDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(outputRoot);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>        if (outputFs.exists(needSetOwnerDir)) {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>          needSetOwnerDir = snapshotTmpDir;<a name="line.965"></a>
-<span class="sourceLineNo">966</span>        }<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
-<span class="sourceLineNo">969</span><a name="line.969"></a>
-<span class="sourceLineNo">970</span>    // Check if the snapshot already exists<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (outputFs.exists(outputSnapshotDir)) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      if (overwrite) {<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        if (!outputFs.delete(outputSnapshotDir, true)) {<a name="line.973"></a>
-<span class="sourceLineNo">974</span>          System.err.println("Unable to remove existing snapshot directory: " + outputSnapshotDir);<a name="line.974"></a>
-<span class="sourceLineNo">975</span>          return 1;<a name="line.975"></a>
-<span class="sourceLineNo">976</span>        }<a name="line.976"></a>
-<span class="sourceLineNo">977</span>      } else {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>        System.err.println("The snapshot '" + targetName +<a name="line.978"></a>
-<span class="sourceLineNo">979</span>          "' already exists in the destination: " + outputSnapshotDir);<a name="line.979"></a>
-<span class="sourceLineNo">980</span>        return 1;<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      }<a name="line.981"></a>
-<span class="sourceLineNo">982</span>    }<a name="line.982"></a>
-<span class="sourceLineNo">983</span><a name="line.983"></a>
-<span class="sourceLineNo">984</span>    if (!skipTmp) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      // Check if the snapshot already in-progress<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      if (outputFs.exists(snapshotTmpDir)) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>        if (overwrite) {<a name="line.987"></a>
-<span class="sourceLineNo">988</span>          if (!outputFs.delete(snapshotTmpDir, true)) {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            System.err.println("Unable to remove existing snapshot tmp directory: "+snapshotTmpDir);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>            return 1;<a name="line.990"></a>
-<span class="sourceLineNo">991</span>          }<a name="line.991"></a>
-<span class="sourceLineNo">992</span>        } else {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>          System.err.println("A snapshot with the same name '"+ targetName +"' may be in-progress");<a name="line.993"></a>
-<span class="sourceLineNo">994</span>          System.err.println("Please check "+snapshotTmpDir+". If the snapshot has completed, ");<a name="line.994"></a>
-<span class="sourceLineNo">995</span>          System.err.println("consider removing "+snapshotTmpDir+" by using the -overwrite option");<a name="line.995"></a>
-<span class="sourceLineNo">996</span>          return 1;<a name="line.996"></a>
-<span class="sourceLineNo">997</span>        }<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      }<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span><a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // Step 1 - Copy fs1:/.snapshot/&lt;snapshot&gt; to  fs2:/.snapshot/.tmp/&lt;snapshot&gt;<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // The snapshot references must be copied before the hfiles otherwise the cleaner<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    // will remove them because they are unreferenced.<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      LOG.info("Copy Snapshot Manifest");<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      FileUtil.copy(inputFs, snapshotDir, outputFs, initialOutputSnapshotDir, false, false, conf);<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    } catch (IOException e) {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      throw new ExportSnapshotException("Failed to copy the snapshot directory: from=" +<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>        snapshotDir + " to=" + initialOutputSnapshotDir, e);<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    } finally {<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      if (filesUser != null || filesGroup != null) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        LOG.warn((filesUser == null ? "" : "Change the owner of " + needSetOwnerDir + " to "<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>            + filesUser)<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>            + (filesGroup == null ? "" : ", Change the group of " + needSetOwnerDir + " to "<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>            + filesGroup));<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        setOwner(outputFs, needSetOwnerDir, filesUser, filesGroup, true);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>      }<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      if (filesMode &gt; 0) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>        LOG.warn("Change the permission of " + needSetOwnerDir + " to " + filesMode);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        setPermission(outputFs, needSetOwnerDir, (short)filesMode, true);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    }<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span><a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    // Write a new .snapshotinfo if the target name is different from the source name<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    if (!targetName.equals(snapshotName)) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      SnapshotDescription snapshotDesc =<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>        SnapshotDescriptionUtils.readSnapshotInfo(inputFs, snapshotDir)<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>          .toBuilder()<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          .setName(targetName)<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>          .build();<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>      SnapshotDescriptionUtils.writeSnapshotInfo(snapshotDesc, initialOutputSnapshotDir, outputFs);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>      if (filesUser != null || filesGroup != null) {<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>        outputFs.setOwner(new Path(initialOutputSnapshotDir,<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), filesUser, filesGroup);<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>      }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>      if (filesMode &gt; 0) {<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>        outputFs.setPermission(new Path(initialOutputSnapshotDir,<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), new FsPermission((short)filesMode));<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>      }<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>    // Step 2 - Start MR Job to copy files<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    // The snapshot references must be copied before the files otherwise the files gets removed<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>    // by the HFileArchiver, since they have no references.<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>    try {<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>      runCopyJob(inputRoot, outputRoot, snapshotName, snapshotDir, verifyChecksum,<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>                 filesUser, filesGroup, filesMode, mappers, bandwidthMB);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span><a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      LOG.info("Finalize the Snapshot Export");<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>      if (!skipTmp) {<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>        // Step 3 - Rename fs2:/.snapshot/.tmp/&lt;snapshot&gt; fs2:/.snapshot/&lt;snapshot&gt;<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        if (!outputFs.rename(snapshotTmpDir, outputSnapshotDir)) {<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>          throw new ExportSnapshotException("Unable to rename snapshot directory from=" +<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>            snapshotTmpDir + " to=" + outputSnapshotDir);<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        }<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>      }<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span><a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>      // Step 4 - Verify snapshot integrity<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>      if (verifyTarget) {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>        LOG.info("Verify snapshot integrity");<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>        verifySnapshot(destConf, outputFs, outputRoot, outputSnapshotDir);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>      }<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span><a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>      LOG.info("Export Completed: " + targetName);<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>      return 0;<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>    } catch (Exception e) {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>      LOG.error("Snapshot export failed", e);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>      if (!skipTmp) {<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>        outputFs.delete(snapshotTmpDir, true);<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      }<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>      outputFs.delete(outputSnapshotDir, true);<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      return 1;<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    } finally {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      IOUtils.closeStream(inputFs);<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>      IOUtils.closeStream(outputFs);<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>    }<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>  @Override<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  protected void printUsage() {<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    super.printUsage();<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    System.out.println("\n"<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>        + "Examples:\n"<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        + "  hbase snapshot export \\\n"<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        + "    --snapshot MySnapshot --copy-to hdfs://srv2:8082/hbase \\\n"<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>        + "    --chuser MyUser --chgroup MyGroup --chmod 700 --mappers 16\n"<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        + "\n"<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>        + "  hbase snapshot export \\\n"<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>        + "    --snapshot MySnapshot --copy-from hdfs://srv2:8082/hbase \\\n"<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        + "    --copy-to hdfs://srv1:50070/hbase");<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>  @Override protected void addOptions() {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    addRequiredOption(Options.SNAPSHOT);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    addOption(Options.COPY_TO);<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>    addOption(Options.COPY_FROM);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    addOption(Options.TARGET_NAME);<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    addOption(Options.NO_CHECKSUM_VERIFY);<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>    addOption(Options.NO_TARGET_VERIFY);<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>    addOption(Options.OVERWRITE);<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    addOption(Options.CHUSER);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    addOption(Options.CHGROUP);<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    addOption(Options.CHMOD);<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    addOption(Options.MAPPERS);<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>    addOption(Options.BANDWIDTH);<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  }<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span><a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>  public static void main(String[] args) {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    new ExportSnapshot().doStaticMain(args);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>  }<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>}<a name="line.1111"></a>
+<span class="sourceLineNo">950</span>    Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshotName, inputRoot);<a name="line.950"></a>
+<span class="sourceLineNo">951</span>    Path snapshotTmpDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(targetName, outputRoot);<a name="line.951"></a>
+<span class="sourceLineNo">952</span>    Path outputSnapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(targetName, outputRoot);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>    Path initialOutputSnapshotDir = skipTmp ? outputSnapshotDir : snapshotTmpDir;<a name="line.953"></a>
+<span class="sourceLineNo">954</span><a name="line.954"></a>
+<span class="sourceLineNo">955</span>    // Find the necessary directory which need to change owner and group<a name="line.955"></a>
+<span class="sourceLineNo">956</span>    Path needSetOwnerDir = SnapshotDescriptionUtils.getSnapshotRootDir(outputRoot);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    if (outputFs.exists(needSetOwnerDir)) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>      if (skipTmp) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        needSetOwnerDir = outputSnapshotDir;<a name="line.959"></a>
+<span class="sourceLineNo">960</span>      } else {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        needSetOwnerDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(outputRoot);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>        if (outputFs.exists(needSetOwnerDir)) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>          needSetOwnerDir = snapshotTmpDir;<a name="line.963"></a>
+<span class="sourceLineNo">964</span>        }<a name="line.964"></a>
+<span class="sourceLineNo">965</span>      }<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    }<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>    // Check if the snapshot already exists<a name="line.968"></a>
+<span class="sourceLineNo">969</span>    if (outputFs.exists(outputSnapshotDir)) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>      if (overwrite) {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>        if (!outputFs.delete(outputSnapshotDir, true)) {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>          System.err.println("Unable to remove existing snapshot directory: " + outputSnapshotDir);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>          return 1;<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>      } else {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>        System.err.println("The snapshot '" + targetName +<a name="line.976"></a>
+<span class="sourceLineNo">977</span>          "' already exists in the destination: " + outputSnapshotDir);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        return 1;<a name="line.978"></a>
+<span class="sourceLineNo">979</span>      }<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    if (!skipTmp) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>      // Check if the snapshot already in-progress<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      if (outputFs.exists(snapshotTmpDir)) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>        if (overwrite) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>          if (!outputFs.delete(snapshotTmpDir, true)) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>            System.err.println("Unable to remove existing snapshot tmp directory: "+snapshotTmpDir);<a name="line.987"></a>
+<span class="sourceLineNo">988</span>            return 1;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>          }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>        } else {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>          System.err.println("A snapshot with the same name '"+ targetName +"' may be in-progress");<a name="line.991"></a>
+<span class="sourceLineNo">992</span>          System.err.println("Please check "+snapshotTmpDir+". If the snapshot has completed, ");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>          System.err.println("consider removing "+snapshotTmpDir+" by using the -overwrite option");<a name="line.993"></a>
+<span class="sourceLineNo">994</span>          return 1;<a name="line.994"></a>
+<span class="sourceLineNo">995</span>        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>      }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    }<a name="line.997"></a>
+<span class="sourceLineNo">998</span><a name="line.998"></a>
+<span class="sourceLineNo">999</span>    // Step 1 - Copy fs1:/.snapshot/&lt;snapshot&gt; to  fs2:/.snapshot/.tmp/&lt;snapshot&gt;<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    // The snapshot references must be copied before the hfiles otherwise the cleaner<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    // will remove them because they are unreferenced.<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>    try {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>      LOG.info("Copy Snapshot Manifest");<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      FileUtil.copy(inputFs, snapshotDir, outputFs, initialOutputSnapshotDir, false, false, conf);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    } catch (IOException e) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      throw new ExportSnapshotException("Failed to copy the snapshot directory: from=" +<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        snapshotDir + " to=" + initialOutputSnapshotDir, e);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    } finally {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      if (filesUser != null || filesGroup != null) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>        LOG.warn((filesUser == null ? "" : "Change the owner of " + needSetOwnerDir + " to "<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>            + filesUser)<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>            + (filesGroup == null ? "" : ", Change the group of " + needSetOwnerDir + " to "<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>            + filesGroup));<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        setOwner(outputFs, needSetOwnerDir, filesUser, filesGroup, true);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>      }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      if (filesMode &gt; 0) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>        LOG.warn("Change the permission of " + needSetOwnerDir + " to " + filesMode);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        setPermission(outputFs, needSetOwnerDir, (short)filesMode, true);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>      }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    }<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span><a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>    // Write a new .snapshotinfo if the target name is different from the source name<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>    if (!targetName.equals(snapshotName)) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>      SnapshotDescription snapshotDesc =<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>        SnapshotDescriptionUtils.readSnapshotInfo(inputFs, snapshotDir)<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>          .toBuilder()<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>          .setName(targetName)<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>          .build();<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      SnapshotDescriptionUtils.writeSnapshotInfo(snapshotDesc, initialOutputSnapshotDir, outputFs);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      if (filesUser != null || filesGroup != null) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        outputFs.setOwner(new Path(initialOutputSnapshotDir,<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), filesUser, filesGroup);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>      }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>      if (filesMode &gt; 0) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        outputFs.setPermission(new Path(initialOutputSnapshotDir,<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), new FsPermission((short)filesMode));<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>      }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>    }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>    // Step 2 - Start MR Job to copy files<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>    // The snapshot references must be copied before the files otherwise the files gets removed<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>    // by the HFileArchiver, since they have no references.<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>    try {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>      runCopyJob(inputRoot, outputRoot, snapshotName, snapshotDir, verifyChecksum,<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                 filesUser, filesGroup, filesMode, mappers, bandwidthMB);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span><a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>      LOG.info("Finalize the Snapshot Export");<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      if (!skipTmp) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        // Step 3 - Rename fs2:/.snapshot/.tmp/&lt;snapshot&gt; fs2:/.snapshot/&lt;snapshot&gt;<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        if (!outputFs.rename(snapshotTmpDir, outputSnapshotDir)) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>          throw new ExportSnapshotException("Unable to rename snapshot directory from=" +<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>            snapshotTmpDir + " to=" + outputSnapshotDir);<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span><a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>      // Step 4 - Verify snapshot integrity<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      if (verifyTarget) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        LOG.info("Verify snapshot integrity");<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        verifySnapshot(destConf, outputFs, outputRoot, outputSnapshotDir);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>      }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      LOG.info("Export Completed: " + targetName);<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      return 0;<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>    } catch (Exception e) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>      LOG.error("Snapshot export failed", e);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      if (!skipTmp) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        outputFs.delete(snapshotTmpDir, true);<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      }<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      outputFs.delete(outputSnapshotDir, true);<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      return 1;<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>    } finally {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      IOUtils.closeStream(inputFs);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>      IOUtils.closeStream(outputFs);<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    }<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  @Override<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>  protected void printUsage() {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    super.printUsage();<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    System.out.println("\n"<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        + "Examples:\n"<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>        + "  hbase snapshot export \\\n"<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>        + "    --snapshot MySnapshot --copy-to hdfs://srv2:8082/hbase \\\n"<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        + "    --chuser MyUser --chgroup MyGroup --chmod 700 --mappers 16\n"<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>        + "\n"<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>        + "  hbase snapshot export \\\n"<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>        + "    --snapshot MySnapshot --copy-from hdfs://srv2:8082/hbase \\\n"<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        + "    --copy-to hdfs://srv1:50070/hbase");<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>  @Override protected void addOptions() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    addRequiredOption(Options.SNAPSHOT);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    addOption(Options.COPY_TO);<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>    addOption(Options.COPY_FROM);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>    addOption(Options.TARGET_NAME);<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>    addOption(Options.NO_CHECKSUM_VERIFY);<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>    addOption(Options.NO_TARGET_VERIFY);<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>    addOption(Options.OVERWRITE);<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>    addOption(Options.CHUSER);<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>    addOption(Options.CHGROUP);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>    addOption(Options.CHMOD);<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>    addOption(Options.MAPPERS);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    addOption(Options.BANDWIDTH);<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>  }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span><a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>  public static void main(String[] args) {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    new ExportSnapshot().doStaticMain(args);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  }<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>}<a name="line.1109"></a>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 7c0019a..50136f0 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -293,7 +293,7 @@
 <td>304</td></tr>
 <tr class="b">
 <th>Number of unique artifacts (NOA):</th>
-<td>329</td></tr>
+<td>330</td></tr>
 <tr class="a">
 <th>Number of version-conflicting artifacts (NOC):</th>
 <td>17</td></tr>
@@ -593,7 +593,7 @@
 <li>org.apache.hbase:hbase-endpoint:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-
 media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-examples:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-
 media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-external-blockcache:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.me
 dia:jersey-media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
-<li>org.apache.hbase:hbase-it:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-
 jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
+<li>org.apache.hbase:hbase-it:jar:3.0.0-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />|&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />\-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;\-&#16
 0;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br /></li><br />
 <li>org.apache.hbase:hbase-mapreduce:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey
 -media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-rest:jar:3.0.0-SNAPSHOT<br />\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-rsgroup:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-m
 edia-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
@@ -785,7 +785,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index c0e2b56..6171f8d 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -318,7 +318,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index ffaed33..cd77612 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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <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" />
@@ -755,30 +755,36 @@
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
 <tr class="b">
+<td>org.glassfish.web</td>
+<td><a class="externalLink" href="http://jsp.java.net">javax.servlet.jsp</a></td>
+<td>2.3.2</td>
+<td>jar</td>
+<td><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
+<tr class="a">
 <td>org.jamon</td>
 <td><a class="externalLink" href="http://www.jamon.org/jamon-java-parent/jamon-runtime/">jamon-runtime</a></td>
 <td>2.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/2.0">Mozilla Public License Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby</td>
 <td><a class="externalLink" href="https://github.com/jruby/jruby/jruby-artifacts/jruby-complete">jruby-complete</a></td>
 <td>9.1.10.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.gnu.org/licenses/gpl-2.0-standalone.html">GPL 2</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1-standalone.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">EPL</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
 <td>1.7.24</td>
@@ -930,7 +936,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 2ce2fd2..4571e6a 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3766,21 +3766,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://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 Sep  4 14:41:48 UTC 2017"</code></td>
+<td class="colLast"><code>"Tue Sep  5 14:41:51 UTC 2017"</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="http://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>"32ddb1f604666e020e04a02c6fc213b22e5badef"</code></td>
+<td class="colLast"><code>"52d4b25754a227983170bdbadc477756a639ea8e"</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="http://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>"f231378f667917848a623d01c6e57499"</code></td>
+<td class="colLast"><code>"cdf50e711b05ee7d4797501f68b4fbf1"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/devapidocs/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html b/devapidocs/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html
index b5e37cf..4a75569 100644
--- a/devapidocs/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html
+++ b/devapidocs/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html
@@ -711,7 +711,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>verifyTarget</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.876">verifyTarget</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.874">verifyTarget</a></pre>
 </li>
 </ul>
 <a name="verifyChecksum">
@@ -720,7 +720,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>verifyChecksum</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.877">verifyChecksum</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.875">verifyChecksum</a></pre>
 </li>
 </ul>
 <a name="snapshotName">
@@ -729,7 +729,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>snapshotName</h4>
-<pre>private&nbsp;<a href="http://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/snapshot/ExportSnapshot.html#line.878">snapshotName</a></pre>
+<pre>private&nbsp;<a href="http://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/snapshot/ExportSnapshot.html#line.876">snapshotName</a></pre>
 </li>
 </ul>
 <a name="targetName">
@@ -738,7 +738,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>targetName</h4>
-<pre>private&nbsp;<a href="http://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/snapshot/ExportSnapshot.html#line.879">targetName</a></pre>
+<pre>private&nbsp;<a href="http://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/snapshot/ExportSnapshot.html#line.877">targetName</a></pre>
 </li>
 </ul>
 <a name="overwrite">
@@ -747,7 +747,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>overwrite</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.880">overwrite</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.878">overwrite</a></pre>
 </li>
 </ul>
 <a name="filesGroup">
@@ -756,7 +756,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>filesGroup</h4>
-<pre>private&nbsp;<a href="http://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/snapshot/ExportSnapshot.html#line.881">filesGroup</a></pre>
+<pre>private&nbsp;<a href="http://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/snapshot/ExportSnapshot.html#line.879">filesGroup</a></pre>
 </li>
 </ul>
 <a name="filesUser">
@@ -765,7 +765,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>filesUser</h4>
-<pre>private&nbsp;<a href="http://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/snapshot/ExportSnapshot.html#line.882">filesUser</a></pre>
+<pre>private&nbsp;<a href="http://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/snapshot/ExportSnapshot.html#line.880">filesUser</a></pre>
 </li>
 </ul>
 <a name="outputRoot">
@@ -774,7 +774,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>outputRoot</h4>
-<pre>private&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.883">outputRoot</a></pre>
+<pre>private&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.881">outputRoot</a></pre>
 </li>
 </ul>
 <a name="inputRoot">
@@ -783,7 +783,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>inputRoot</h4>
-<pre>private&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.884">inputRoot</a></pre>
+<pre>private&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.882">inputRoot</a></pre>
 </li>
 </ul>
 <a name="bandwidthMB">
@@ -792,7 +792,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>bandwidthMB</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.885">bandwidthMB</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.883">bandwidthMB</a></pre>
 </li>
 </ul>
 <a name="filesMode">
@@ -801,7 +801,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>filesMode</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.886">filesMode</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.884">filesMode</a></pre>
 </li>
 </ul>
 <a name="mappers">
@@ -810,7 +810,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>mappers</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.887">mappers</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.885">mappers</a></pre>
 </li>
 </ul>
 </li>
@@ -907,7 +907,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>verifySnapshot</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.835">verifySnapshot</a>(org.apache.hadoop.conf.Configuration&nbsp;baseConf,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.833">verifySnapshot</a>(org.apache.hadoop.conf.Configuration&nbsp;baseConf,
                             org.apache.hadoop.fs.FileSystem&nbsp;fs,
                             org.apache.hadoop.fs.Path&nbsp;rootDir,
                             org.apache.hadoop.fs.Path&nbsp;snapshotDir)
@@ -924,7 +924,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>setOwner</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.848">setOwner</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.846">setOwner</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                       org.apache.hadoop.fs.Path&nbsp;path,
                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;group,
@@ -943,7 +943,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>setPermission</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.863">setPermission</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.861">setPermission</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                            org.apache.hadoop.fs.Path&nbsp;path,
                            short&nbsp;filesMode,
                            boolean&nbsp;recursive)
@@ -961,7 +961,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>processOptions</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.890">processOptions</a>(org.apache.commons.cli.CommandLine&nbsp;cmd)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.888">processOptions</a>(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.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>
@@ -976,7 +976,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>doWork</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.915">doWork</a>()
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.913">doWork</a>()
            throws <a href="http://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">Execute the export snapshot by copying the snapshot metadata, hfiles and wals.</div>
 <dl>
@@ -995,7 +995,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>printUsage</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.1080">printUsage</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.1078">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>
@@ -1008,7 +1008,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>addOptions</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.1093">addOptions</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.1091">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>
@@ -1024,7 +1024,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>main</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.1108">main</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#line.1106">main</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/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 b6397c8..0a22405 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 = "32ddb1f604666e020e04a02c6fc213b22e5badef";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "52d4b25754a227983170bdbadc477756a639ea8e";<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 Sep  4 14:41:48 UTC 2017";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Tue Sep  5 14:41:51 UTC 2017";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://asf920.gq1.ygridcore.net/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String srcChecksum = "f231378f667917848a623d01c6e57499";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "cdf50e711b05ee7d4797501f68b4fbf1";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
index 1455bb5..cc76782 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -218,7 +218,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
index 552385d..93bacab 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
index 63863ce..fea90db 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -163,7 +163,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html
index 391cb57..70b5cb5 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html
index a72a1ba..c2ca297 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -529,7 +529,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html
index 243e7a8..28c3e02 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -150,7 +150,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html
index d6c9bad..d0d938d 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -2323,16 +2323,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Java.net - The Source for Java Technology Collaboration</p>
 <p><b>URL: </b><a class="externalLink" href="http://jsp.java.net">http://jsp.java.net</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish.web:javax.servlet.jsp:jar:2.3.2 (test) <img id="_img233" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep232', '_img233' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep232" style="display:none">
-<table border="0" class="table table-striped">
-<tr class="a">
-<th>JSP implementation</th></tr>
-<tr class="b">
-<td>
-<p><b>Description: </b>Java.net - The Source for Java Technology Collaboration</p>
-<p><b>URL: </b><a class="externalLink" href="http://jsp.java.net">http://jsp.java.net</a></p>
-<p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty.orbit:javax.servlet.jsp.jstl:jar:1.2.0.v201105211821 (test) <img id="_img235" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep234', '_img235' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep234" style="display:none">
+<li>org.eclipse.jetty.orbit:javax.servlet.jsp.jstl:jar:1.2.0.v201105211821 (test) <img id="_img233" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep232', '_img233' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep232" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty Orbit :: JSP JSTL</th></tr>
@@ -2342,7 +2333,7 @@ built on Jackson JSON processor</p>
     it is an osgi bundle and is signed as well.</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-orbit/javax.servlet.jsp.jstl">http://www.eclipse.org/jetty/jetty-orbit/javax.servlet.jsp.jstl</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.glassfish.web:javax.servlet.jsp.jstl:jar:1.2.2 (test) <img id="_img237" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep236', '_img237' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep236" style="display:none">
+<li>org.glassfish.web:javax.servlet.jsp.jstl:jar:1.2.2 (test) <img id="_img235" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep234', '_img235' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep234" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>JavaServer Pages (TM) TagLib Implementation</th></tr>
@@ -2351,7 +2342,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Java.net - The Source for Java Technology Collaboration</p>
 <p><b>URL: </b><a class="externalLink" href="http://jstl.java.net">http://jstl.java.net</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish:javax.el:jar:3.0.0 (test) <img id="_img239" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep238', '_img239' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep238" style="display:none">
+<li>org.glassfish:javax.el:jar:3.0.0 (test) <img id="_img237" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep236', '_img237' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep236" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Expression Language 3.0</th></tr>
@@ -2360,7 +2351,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Java.net - The Source for Java Technology Collaboration</p>
 <p><b>URL: </b><a class="externalLink" href="http://el-spec.java.net">http://el-spec.java.net</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty.orbit:org.eclipse.jdt.core:jar:3.8.2.v20130121 (test) <img id="_img241" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep240', '_img241' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep240" style="display:none">
+<li>org.eclipse.jetty.orbit:org.eclipse.jdt.core:jar:3.8.2.v20130121 (test) <img id="_img239" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep238', '_img239' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep238" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty Orbit :: JDT Compiler</th></tr>
@@ -2371,7 +2362,7 @@ built on Jackson JSON processor</p>
     org.eclipse.jdt.core.compiler.batch_3.8.2.v20130121-145325</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-orbit/org.eclipse.jdt.core">http://www.eclipse.org/jetty/jetty-orbit/org.eclipse.jdt.core</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.eclipse.jetty:jetty-webapp:jar:9.4.6.v20170531 (test) <img id="_img243" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep242', '_img243' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep242" style="display:none">
+<li>org.eclipse.jetty:jetty-webapp:jar:9.4.6.v20170531 (test) <img id="_img241" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep240', '_img241' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep240" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Webapp Application Support</th></tr>
@@ -2381,7 +2372,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div>
 <ul>
-<li>org.eclipse.jetty:jetty-xml:jar:9.4.6.v20170531 (test) <img id="_img245" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep244', '_img245' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep244" style="display:none">
+<li>org.eclipse.jetty:jetty-xml:jar:9.4.6.v20170531 (test) <img id="_img243" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep242', '_img243' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep242" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: XML utilities</th></tr>
@@ -2390,7 +2381,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>The jetty xml utilities.</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.eclipse.jetty:jetty-http:jar:9.4.6.v20170531 (test) <img id="_img247" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep246', '_img247' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep246" style="display:none">
+<li>org.eclipse.jetty:jetty-http:jar:9.4.6.v20170531 (test) <img id="_img245" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep244', '_img245' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep244" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Http Utility</th></tr>
@@ -2399,7 +2390,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>The Eclipse Jetty Project</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty:jetty-security:jar:9.4.6.v20170531 (test) <img id="_img249" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep248', '_img249' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep248" style="display:none">
+<li>org.eclipse.jetty:jetty-security:jar:9.4.6.v20170531 (test) <img id="_img247" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep246', '_img247' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep246" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Security</th></tr>
@@ -2408,7 +2399,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Jetty security infrastructure</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1 (test) <img id="_img251" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep250', '_img251' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep250" style="display:none">
+<li>org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1 (test) <img id="_img249" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep248', '_img249' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep248" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-container-servlet-core</th></tr>
@@ -2418,7 +2409,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/project/jersey-container-servlet-core/">https://jersey.java.net/project/jersey-container-servlet-core/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div>
 <ul>
-<li>org.glassfish.hk2.external:javax.inject:jar:2.5.0-b32 (test) <img id="_img253" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep252', '_img253' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep252" style="display:none">
+<li>org.glassfish.hk2.external:javax.inject:jar:2.5.0-b32 (test) <img id="_img251" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep250', '_img251' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep250" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>javax.inject:1 as OSGi bundle</th></tr>
@@ -2427,7 +2418,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Injection API (JSR 330) version ${javax.inject.version} repackaged as OSGi bundle</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/external/javax.inject">https://hk2.java.net/external/javax.inject</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish.jersey.core:jersey-common:jar:2.25.1 (test) <img id="_img255" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep254', '_img255' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep254" style="display:none">
+<li>org.glassfish.jersey.core:jersey-common:jar:2.25.1 (test) <img id="_img253" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep252', '_img253' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep252" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-core-common</th></tr>
@@ -2437,7 +2428,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-common/">https://jersey.java.net/jersey-common/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div>
 <ul>
-<li>javax.annotation:javax.annotation-api:jar:1.2 (test) <img id="_img257" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep256', '_img257' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep256" style="display:none">
+<li>javax.annotation:javax.annotation-api:jar:1.2 (test) <img id="_img255" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep254', '_img255' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep254" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>javax.annotation API</th></tr>
@@ -2446,7 +2437,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Common Annotations for the JavaTM Platform API</p>
 <p><b>URL: </b><a class="externalLink" href="http://jcp.org/en/jsr/detail?id=250">http://jcp.org/en/jsr/detail?id=250</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.25.1 (test) <img id="_img259" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep258', '_img259' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep258" style="display:none">
+<li>org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.25.1 (test) <img id="_img257" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep256', '_img257' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep256" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-repackaged-guava</th></tr>
@@ -2455,7 +2446,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Jersey Guava Repackaged</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/project/project/jersey-guava/">https://jersey.java.net/project/project/jersey-guava/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div></li>
-<li>org.glassfish.hk2:hk2-api:jar:2.5.0-b32 (test) <img id="_img261" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep260', '_img261' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep260" style="display:none">
+<li>org.glassfish.hk2:hk2-api:jar:2.5.0-b32 (test) <img id="_img259" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep258', '_img259' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep258" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>HK2 API module</th></tr>
@@ -2465,7 +2456,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/hk2-api">https://hk2.java.net/hk2-api</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div>
 <ul>
-<li>org.glassfish.hk2:hk2-utils:jar:2.5.0-b32 (test) <img id="_img263" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep262', '_img263' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep262" style="display:none">
+<li>org.glassfish.hk2:hk2-utils:jar:2.5.0-b32 (test) <img id="_img261" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep260', '_img261' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep260" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>HK2 Implementation Utilities</th></tr>
@@ -2474,7 +2465,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>HK2 Implementation Utilities</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/hk2-utils">https://hk2.java.net/hk2-utils</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish.hk2.external:aopalliance-repackaged:jar:2.5.0-b32 (test) <img id="_img265" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep264', '_img265' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep264" style="display:none">
+<li>org.glassfish.hk2.external:aopalliance-repackaged:jar:2.5.0-b32 (test) <img id="_img263" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep262', '_img263' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep262" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>aopalliance version 1.0 repackaged as a module</th></tr>
@@ -2483,7 +2474,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Dependency Injection Kernel</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/external/aopalliance-repackaged">https://hk2.java.net/external/aopalliance-repackaged</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li></ul></li>
-<li>org.glassfish.hk2:hk2-locator:jar:2.5.0-b32 (test) <img id="_img267" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep266', '_img267' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep266" style="display:none">
+<li>org.glassfish.hk2:hk2-locator:jar:2.5.0-b32 (test) <img id="_img265" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep264', '_img265' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep264" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>ServiceLocator Default Implementation</th></tr>
@@ -2493,7 +2484,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/hk2-locator">https://hk2.java.net/hk2-locator</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div>
 <ul>
-<li>org.javassist:javassist:jar:3.20.0-GA (test) <img id="_img269" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep268', '_img269' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep268" style="display:none">
+<li>org.javassist:javassist:jar:3.20.0-GA (test) <img id="_img267" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep266', '_img267' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep266" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Javassist</th></tr>
@@ -2503,7 +2494,7 @@ built on Jackson JSON processor</p>
     simple.  It is a class library for editing bytecodes in Java.</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.javassist.org/">http://www.javassist.org/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.mozilla.org/MPL/MPL-1.1.html">MPL 1.1</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.apache.org/licenses/">Apache License 2.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.glassfish.hk2:osgi-resource-locator:jar:1.0.1 (test) <img id="_img271" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep270', '_img271' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep270" style="display:none">
+<li>org.glassfish.hk2:osgi-resource-locator:jar:1.0.1 (test) <img id="_img269" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep268', '_img269' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep268" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>OSGi resource locator bundle - used by various API providers that rely on META-INF/services mechanism to locate providers.</th></tr>
@@ -2512,7 +2503,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>See http://wiki.glassfish.java.net/Wiki.jsp?page=JdkSpiOsgi for more information</p>
 <p><b>URL: </b><a class="externalLink" href="http://glassfish.org/osgi-resource-locator/">http://glassfish.org/osgi-resource-locator/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li></ul></li>
-<li>org.glassfish.jersey.core:jersey-server:jar:2.25.1 (test) <img id="_img273" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep272', '_img273' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep272" style="display:none">
+<li>org.glassfish.jersey.core:jersey-server:jar:2.25.1 (test) <img id="_img271" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep270', '_img271' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep270" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-core-server</th></tr>
@@ -2522,7 +2513,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-server/">https://jersey.java.net/jersey-server/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div>
 <ul>
-<li>org.glassfish.jersey.core:jersey-client:jar:2.25.1 (test) <img id="_img275" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep274', '_img275' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep274" style="display:none">
+<li>org.glassfish.jersey.core:jersey-client:jar:2.25.1 (test) <img id="_img273" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep272', '_img273' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep272" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-core-client</th></tr>
@@ -2531,7 +2522,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Jersey core client implementation</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-client/">https://jersey.java.net/jersey-client/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div></li>
-<li>org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1 (test) <img id="_img277" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep276', '_img277' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep276" style="display:none">
+<li>org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1 (test) <img id="_img275" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep274', '_img275' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep274" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-media-jaxb</th></tr>
@@ -2540,7 +2531,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>JAX-RS features based upon JAX-B.</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/project/jersey-media-jaxb/">https://jersey.java.net/project/jersey-media-jaxb/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div></li>
-<li>javax.validation:validation-api:jar:1.1.0.Final (test) <img id="_img279" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep278', '_img279' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep278" style="display:none">
+<li>javax.validation:validation-api:jar:1.1.0.Final (test) <img id="_img277" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep276', '_img277' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep276" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Bean Validation API</th></tr>
@@ -2549,7 +2540,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Bean Validation API</p>
 <p><b>URL: </b><a class="externalLink" href="http://beanvalidation.org">http://beanvalidation.org</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li></ul></li>
-<li>org.glassfish.jersey.media:jersey-media-json-jackson1:jar:2.23.2 (test) <img id="_img281" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep280', '_img281' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep280" style="display:none">
+<li>org.glassfish.jersey.media:jersey-media-json-jackson1:jar:2.23.2 (test) <img id="_img279" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep278', '_img279' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep278" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jersey-media-json-jackson1</th></tr>
@@ -2559,7 +2550,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/project/jersey-media-json-jackson1/">https://jersey.java.net/project/jersey-media-json-jackson1/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div>
 <ul>
-<li>org.codehaus.jackson:jackson-jaxrs:jar:1.9.13 (compile) <img id="_img283" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep282', '_img283' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep282" style="display:none">
+<li>org.codehaus.jackson:jackson-jaxrs:jar:1.9.13 (compile) <img id="_img281" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep280', '_img281' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep280" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>JAX-RS provider for JSON content type</th></tr>
@@ -2569,7 +2560,7 @@ built on Jackson JSON processor</p>
 Jackson JSON processor's data binding functionality.</p>
 <p><b>URL: </b><a class="externalLink" href="http://jackson.codehaus.org">http://jackson.codehaus.org</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></p></td></tr></table></div></li>
-<li>org.codehaus.jackson:jackson-xc:jar:1.9.13 (compile) <img id="_img285" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep284', '_img285' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep284" style="display:none">
+<li>org.codehaus.jackson:jackson-xc:jar:1.9.13 (compile) <img id="_img283" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep282', '_img283' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep282" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Xml Compatibility extensions for Jackson</th></tr>
@@ -2579,6 +2570,15 @@ Jackson JSON processor's data binding functionality.</p>
 Jackson JSON processor's data binding functionality.</p>
 <p><b>URL: </b><a class="externalLink" href="http://jackson.codehaus.org">http://jackson.codehaus.org</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></p></td></tr></table></div></li></ul></li>
+<li>org.glassfish.web:javax.servlet.jsp:jar:2.3.2 (test) <img id="_img285" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep284', '_img285' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep284" style="display:none">
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>JSP implementation</th></tr>
+<tr class="b">
+<td>
+<p><b>Description: </b>Java.net - The Source for Java Technology Collaboration</p>
+<p><b>URL: </b><a class="externalLink" href="http://jsp.java.net">http://jsp.java.net</a></p>
+<p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
 <li>org.codehaus.jackson:jackson-core-asl:jar:1.9.13 (compile) <img id="_img287" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep286', '_img287' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep286" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
@@ -4139,7 +4139,7 @@ Jackson JSON processor's data binding functionality.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html
index 895ee54..20fae5d 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
 <td>304</td></tr>
 <tr class="b">
 <th>Number of unique artifacts (NOA):</th>
-<td>329</td></tr>
+<td>330</td></tr>
 <tr class="a">
 <th>Number of version-conflicting artifacts (NOC):</th>
 <td>17</td></tr>
@@ -423,7 +423,7 @@
 <li>org.apache.hbase:hbase-endpoint:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-
 media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-examples:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-
 media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-external-blockcache:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.me
 dia:jersey-media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
-<li>org.apache.hbase:hbase-it:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-
 jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
+<li>org.apache.hbase:hbase-it:jar:3.0.0-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />|&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />\-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;\-&#16
 0;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br /></li><br />
 <li>org.apache.hbase:hbase-mapreduce:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey
 -media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-rest:jar:3.0.0-SNAPSHOT<br />\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-rsgroup:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-m
 edia-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
@@ -615,7 +615,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html
index 8d8d6d8..b450b73 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html
index 8308002..23331c5 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -585,30 +585,36 @@
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
 <tr class="b">
+<td>org.glassfish.web</td>
+<td><a class="externalLink" href="http://jsp.java.net">javax.servlet.jsp</a></td>
+<td>2.3.2</td>
+<td>jar</td>
+<td><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
+<tr class="a">
 <td>org.jamon</td>
 <td><a class="externalLink" href="http://www.jamon.org/jamon-java-parent/jamon-runtime/">jamon-runtime</a></td>
 <td>2.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/2.0">Mozilla Public License Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby</td>
 <td><a class="externalLink" href="https://github.com/jruby/jruby/jruby-artifacts/jruby-complete">jruby-complete</a></td>
 <td>9.1.10.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.gnu.org/licenses/gpl-2.0-standalone.html">GPL 2</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1-standalone.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">EPL</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
 <td>1.7.24</td>
@@ -760,7 +766,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html
index 2526a67..b211390 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html
index 2573eda..c1da34a 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html
index e4658a8..a3e6aee 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html
index 95328c9..d28a2e2 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html
index 2b5a232..9e9f381 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html
index 3c87777..6d9e6f0 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html
index ab34bca..23291f0 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -226,7 +226,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html
index 9491e54..791a84d 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html
index 98dba34..7003000 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html
index b3a8335..4778bed 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html
index f3a2f4c..47c1e26 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html
index f04f557..e9b467c 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -529,7 +529,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
index 555b1ff..d3b31d5 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -150,7 +150,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/team-list.html b/hbase-build-configuration/team-list.html
index 4fb5200..99d15d9 100644
--- a/hbase-build-configuration/team-list.html
+++ b/hbase-build-configuration/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -529,7 +529,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-shaded-check-invariants/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/checkstyle.html b/hbase-shaded-check-invariants/checkstyle.html
index 22c9968..aedd5ad 100644
--- a/hbase-shaded-check-invariants/checkstyle.html
+++ b/hbase-shaded-check-invariants/checkstyle.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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -150,7 +150,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-shaded-check-invariants/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependencies.html b/hbase-shaded-check-invariants/dependencies.html
index b1172d3..b1eddcc 100644
--- a/hbase-shaded-check-invariants/dependencies.html
+++ b/hbase-shaded-check-invariants/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -321,390 +321,408 @@
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
 <tr class="b">
+<td>javax.servlet.jsp</td>
+<td><a class="externalLink" href="http://jsp.java.net">javax.servlet.jsp-api</a></td>
+<td>2.3.1</td>
+<td>jar</td>
+<td><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
+<tr class="a">
 <td>org.apache.avro</td>
 <td><a class="externalLink" href="http://avro.apache.org">avro</a></td>
 <td>1.7.7</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/compress/">commons-compress</a></td>
 <td>1.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-crypto/">commons-crypto</a></td>
 <td>1.0.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/math/">commons-math</a></td>
 <td>2.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/math/">commons-math3</a></td>
 <td>3.1.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-client">curator-client</a></td>
 <td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-framework">curator-framework</a></td>
 <td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-recipes">curator-recipes</a></td>
 <td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.directory.api</td>
 <td><a class="externalLink" href="http://directory.apache.org/api-parent/api-asn1-parent/api-asn1-api/">api-asn1-api</a></td>
 <td>1.0.0-M20</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.directory.api</td>
 <td><a class="externalLink" href="http://directory.apache.org/api-parent/api-util/">api-util</a></td>
 <td>1.0.0-M20</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.directory.server</td>
 <td><a class="externalLink" href="http://directory.apache.org/apacheds/1.5/apacheds-i18n">apacheds-i18n</a></td>
 <td>2.0.0-M15</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.directory.server</td>
 <td><a class="externalLink" href="http://directory.apache.org/apacheds/1.5/apacheds-kerberos-codec">apacheds-kerberos-codec</a></td>
 <td>2.0.0-M15</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-annotations</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-auth</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-client</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-common</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-distcp</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-hdfs</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-app</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-common</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-core</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-jobclient</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-shuffle</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-yarn-api</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-yarn-client</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-yarn-common</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-yarn-server-common</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-build-configuration/hbase-annotations">hbase-annotations</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-build-configuration/hbase-client">hbase-client</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-build-configuration/hbase-common">hbase-common</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-build-configuration/hbase-hadoop-compat">hbase-hadoop-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-build-configuration/hbase-hadoop2-compat">hbase-hadoop2-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-build-configuration/hbase-metrics">hbase-metrics</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-build-configuration/hbase-metrics-api">hbase-metrics-api</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-build-configuration/hbase-procedure">hbase-procedure</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-build-configuration/hbase-protocol">hbase-protocol</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-build-configuration/hbase-protocol-shaded">hbase-protocol-shaded</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-build-configuration/hbase-replication">hbase-replication</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-build-configuration/hbase-server">hbase-server</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase.thirdparty</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-shaded-miscellaneous">hbase-shaded-miscellaneous</a></td>
 <td>1.0.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase.thirdparty</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-shaded-netty">hbase-shaded-netty</a></td>
 <td>1.0.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase.thirdparty</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-shaded-protobuf">hbase-shaded-protobuf</a></td>
 <td>1.0.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.htrace</td>
 <td><a class="externalLink" href="http://incubator.apache.org/projects/htrace.html">htrace-core</a></td>
 <td>3.2.0-incubating</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-client">httpclient</a></td>
 <td>4.5.3</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-core-ga">httpcore</a></td>
 <td>4.4.6</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.zookeeper</td>
 <td>zookeeper</td>
 <td>3.4.10</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-core-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-jaxrs</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>-<a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-mapper-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-xc</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>-<a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jettison</td>
 <td><a class="externalLink" href="https://github.com/jettison-json/jettison">jettison</a></td>
 <td>1.3.8</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
 <td>9.4.6.v20170531</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
 <td>9.4.6.v20170531</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
 <td>9.4.6.v20170531</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.fusesource.leveldbjni</td>
 <td><a class="externalLink" href="http://leveldbjni.fusesource.org/leveldbjni-all">leveldbjni-all</a></td>
 <td>1.8</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/BSD-3-Clause">The BSD 3-Clause License</a></td></tr>
+<tr class="b">
+<td>org.glassfish</td>
+<td><a class="externalLink" href="http://uel.java.net">javax.el</a></td>
+<td>3.0.1-b08</td>
+<td>jar</td>
+<td><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
 <tr class="a">
+<td>org.glassfish.web</td>
+<td><a class="externalLink" href="http://jsp.java.net">javax.servlet.jsp</a></td>
+<td>2.3.2</td>
+<td>jar</td>
+<td><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
+<tr class="b">
 <td>org.jamon</td>
 <td><a class="externalLink" href="http://www.jamon.org/jamon-java-parent/jamon-runtime/">jamon-runtime</a></td>
 <td>2.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/2.0">Mozilla Public License Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.mortbay.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-parent/project/modules/jetty">jetty</a></td>
 <td>6.1.26</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.mortbay.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-parent/project/jetty-util">jetty-util</a></td>
 <td>6.1.26</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
 <td>1.7.24</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-log4j12</a></td>
 <td>1.6.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.tukaani</td>
 <td><a class="externalLink" href="http://tukaani.org/xz/java.html">xz</a></td>
 <td>1.0</td>
 <td>jar</td>
 <td>Public Domain</td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.xerial.snappy</td>
 <td><a class="externalLink" href="http://github.com/xerial/snappy-java/">snappy-java</a></td>
 <td>1.0.5</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>xmlenc</td>
 <td><a class="externalLink" href="http://xmlenc.sourceforge.net">xmlenc</a></td>
 <td>0.52</td>
@@ -1459,7 +1477,35 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Jetty security infrastructure</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.codehaus.jackson:jackson-core-asl:jar:1.9.13 (compile) <img id="_img129" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep128', '_img129' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep128" style="display:none">
+<li>org.glassfish.web:javax.servlet.jsp:jar:2.3.2 (compile) <img id="_img129" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep128', '_img129' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep128" style="display:none">
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>JSP implementation</th></tr>
+<tr class="b">
+<td>
+<p><b>Description: </b>Java.net - The Source for Java Technology Collaboration</p>
+<p><b>URL: </b><a class="externalLink" href="http://jsp.java.net">http://jsp.java.net</a></p>
+<p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div>
+<ul>
+<li>org.glassfish:javax.el:jar:3.0.1-b08 (compile) <img id="_img131" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep130', '_img131' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep130" style="display:none">
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>Expression Language 3.0</th></tr>
+<tr class="b">
+<td>
+<p><b>Description: </b>Java.net - The Source for Java Technology Collaboration</p>
+<p><b>URL: </b><a class="externalLink" href="http://uel.java.net">http://uel.java.net</a></p>
+<p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
+<li>javax.servlet.jsp:javax.servlet.jsp-api:jar:2.3.1 (compile) <img id="_img133" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep132', '_img133' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep132" style="display:none">
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>JavaServer Pages(TM) API</th></tr>
+<tr class="b">
+<td>
+<p><b>Description: </b>Java.net - The Source for Java Technology Collaboration</p>
+<p><b>URL: </b><a class="externalLink" href="http://jsp.java.net">http://jsp.java.net</a></p>
+<p><b>Project Licenses: </b><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li></ul></li>
+<li>org.codehaus.jackson:jackson-core-asl:jar:1.9.13 (compile) <img id="_img135" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep134', '_img135' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep134" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jackson</th></tr>
@@ -1468,7 +1514,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Jackson is a high-performance JSON processor (parser, generator)</p>
 <p><b>URL: </b><a class="externalLink" href="http://jackson.codehaus.org">http://jackson.codehaus.org</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.codehaus.jettison:jettison:jar:1.3.8 (compile) <img id="_img131" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep130', '_img131' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep130" style="display:none">
+<li>org.codehaus.jettison:jettison:jar:1.3.8 (compile) <img id="_img137" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep136', '_img137' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep136" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jettison</th></tr>
@@ -1477,7 +1523,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>A StAX implementation for JSON.</p>
 <p><b>URL: </b><a class="externalLink" href="https://github.com/jettison-json/jettison">https://github.com/jettison-json/jettison</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>commons-cli:commons-cli:jar:1.4 (compile) <img id="_img133" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep132', '_img133' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep132" style="display:none">
+<li>commons-cli:commons-cli:jar:1.4 (compile) <img id="_img139" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep138', '_img139' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep138" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Apache Commons CLI</th></tr>
@@ -1486,7 +1532,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Commons CLI provides a simple API for presenting, processing and validating a command line interface.</p>
 <p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/proper/commons-cli/">http://commons.apache.org/proper/commons-cli/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.commons:commons-math:jar:2.2 (compile) <img id="_img135" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep134', '_img135' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep134" style="display:none">
+<li>org.apache.commons:commons-math:jar:2.2 (compile) <img id="_img141" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep140', '_img141' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep140" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Commons Math</th></tr>
@@ -1495,7 +1541,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>The Math project is a library of lightweight, self-contained mathematics and statistics components addressing the most common practical problems not immediately available in the Java programming language or commons-lang.</p>
 <p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/math/">http://commons.apache.org/math/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.jamon:jamon-runtime:jar:2.4.1 (compile) <img id="_img137" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep136', '_img137' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep136" style="display:none">
+<li>org.jamon:jamon-runtime:jar:2.4.1 (compile) <img id="_img143" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep142', '_img143' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep142" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jamon-runtime</th></tr>
@@ -1504,7 +1550,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Jamon runtime support classes</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.jamon.org/jamon-java-parent/jamon-runtime/">http://www.jamon.org/jamon-java-parent/jamon-runtime/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.mozilla.org/MPL/2.0">Mozilla Public License Version 2.0</a></p></td></tr></table></div></li>
-<li>javax.servlet:javax.servlet-api:jar:3.1.0 (compile) <img id="_img139" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep138', '_img139' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep138" style="display:none">
+<li>javax.servlet:javax.servlet-api:jar:3.1.0 (compile) <img id="_img145" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep144', '_img145' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep144" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Java Servlet API</th></tr>
@@ -1513,7 +1559,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Java.net - The Source for Java Technology Collaboration</p>
 <p><b>URL: </b><a class="externalLink" href="http://servlet-spec.java.net">http://servlet-spec.java.net</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>com.lmax:disruptor:jar:3.3.6 (compile) <img id="_img141" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep140', '_img141' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep140" style="display:none">
+<li>com.lmax:disruptor:jar:3.3.6 (compile) <img id="_img147" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep146', '_img147' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep146" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Disruptor Framework</th></tr>
@@ -1522,7 +1568,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Disruptor - Concurrent Programming Framework</p>
 <p><b>URL: </b><a class="externalLink" href="http://lmax-exchange.github.com/disruptor">http://lmax-exchange.github.com/disruptor</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.hadoop:hadoop-distcp:jar:2.7.1 (compile) <img id="_img143" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep142', '_img143' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep142" style="display:none">
+<li>org.apache.hadoop:hadoop-distcp:jar:2.7.1 (compile) <img id="_img149" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep148', '_img149' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep148" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Apache Hadoop Distributed Copy</th></tr>
@@ -1530,7 +1576,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Distributed Copy</p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.hadoop:hadoop-annotations:jar:2.7.1 (compile) <img id="_img145" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep144', '_img145' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep144" style="display:none">
+<li>org.apache.hadoop:hadoop-annotations:jar:2.7.1 (compile) <img id="_img151" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep150', '_img151' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep150" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Apache Hadoop Annotations</th></tr>
@@ -1539,14 +1585,14 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Annotations</p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>jdk.tools:jdk.tools:jar:1.8 (system) <img id="_img147" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep146', '_img147' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep146" style="display:none">
+<li>jdk.tools:jdk.tools:jar:1.8 (system) <img id="_img153" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep152', '_img153' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep152" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>jdk.tools:jdk.tools:jar:1.8</th></tr>
 <tr class="b">
 <td>
 <p><b>Description: </b>There is currently no description associated with this project.</p></td></tr></table></div></li></ul></li>
-<li>org.apache.hadoop:hadoop-client:jar:2.7.1 (compile) <img id="_img149" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep148', '_img149' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep148" style="display:none">
+<li>org.apache.hadoop:hadoop-client:jar:2.7.1 (compile) <img id="_img155" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep154', '_img155' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep154" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Apache Hadoop Client</th></tr>
@@ -1555,7 +1601,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Client</p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.hadoop:hadoop-mapreduce-client-app:jar:2.7.1 (compile) <img id="_img151" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep150', '_img151' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep150" style="display:none">
+<li>org.apache.hadoop:hadoop-mapreduce-client-app:jar:2.7.1 (compile) <img id="_img157" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep156', '_img157' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep156" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>hadoop-mapreduce-client-app</th></tr>
@@ -1564,7 +1610,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.7.1 (compile) <img id="_img153" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep152', '_img153' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep152" style="display:none">
+<li>org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.7.1 (compile) <img id="_img159" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep158', '_img159' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep158" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>hadoop-mapreduce-client-common</th></tr>
@@ -1573,7 +1619,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.hadoop:hadoop-yarn-client:jar:2.7.1 (compile) <img id="_img155" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep154', '_img155' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep154" style="display:none">
+<li>org.apache.hadoop:hadoop-yarn-client:jar:2.7.1 (compile) <img id="_img161" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep160', '_img161' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep160" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>hadoop-yarn-client</th></tr>
@@ -1581,7 +1627,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.hadoop:hadoop-yarn-server-common:jar:2.7.1 (compile) <img id="_img157" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep156', '_img157' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep156" style="display:none">
+<li>org.apache.hadoop:hadoop-yarn-server-common:jar:2.7.1 (compile) <img id="_img163" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep162', '_img163' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep162" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>hadoop-yarn-server-common</th></tr>
@@ -1589,7 +1635,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.7.1 (compile) <img id="_img159" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep158', '_img159' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep158" style="display:none">
+<li>org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.7.1 (compile) <img id="_img165" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep164', '_img165' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep164" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>hadoop-mapreduce-client-shuffle</th></tr>
@@ -1597,7 +1643,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.apache.hadoop:hadoop-yarn-api:jar:2.7.1 (compile) <img id="_img161" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep160', '_img161' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep160" style="display:none">
+<li>org.apache.hadoop:hadoop-yarn-api:jar:2.7.1 (compile) <img id="_img167" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep166', '_img167' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep166" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>hadoop-yarn-api</th></tr>
@@ -1605,7 +1651,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.7.1 (compile) <img id="_img163" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep162', '_img163' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep162" style="display:none">
+<li>org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.7.1 (compile) <img id="_img169" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep168', '_img169' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep168" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>hadoop-mapreduce-client-jobclient</th></tr>
@@ -1613,7 +1659,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.7.1 (compile) <img id="_img165" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep164', '_img165' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep164" style="display:none">
+<li>org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.7.1 (compile) <img id="_img171" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep170', '_img171' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep170" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>hadoop-mapreduce-client-core</th></tr>
@@ -1622,7 +1668,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.hadoop:hadoop-yarn-common:jar:2.7.1 (compile) <img id="_img167" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep166', '_img167' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep166" style="display:none">
+<li>org.apache.hadoop:hadoop-yarn-common:jar:2.7.1 (compile) <img id="_img173" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep172', '_img173' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep172" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>hadoop-yarn-common</th></tr>
@@ -1631,7 +1677,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.codehaus.jackson:jackson-jaxrs:jar:1.9.13 (compile) <img id="_img169" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep168', '_img169' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep168" style="display:none">
+<li>org.codehaus.jackson:jackson-jaxrs:jar:1.9.13 (compile) <img id="_img175" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep174', '_img175' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep174" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>JAX-RS provider for JSON content type</th></tr>
@@ -1641,7 +1687,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 Jackson JSON processor's data binding functionality.</p>
 <p><b>URL: </b><a class="externalLink" href="http://jackson.codehaus.org">http://jackson.codehaus.org</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></p></td></tr></table></div></li>
-<li>org.codehaus.jackson:jackson-xc:jar:1.9.13 (compile) <img id="_img171" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep170', '_img171' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep170" style="display:none">
+<li>org.codehaus.jackson:jackson-xc:jar:1.9.13 (compile) <img id="_img177" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep176', '_img177' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep176" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Xml Compatibility extensions for Jackson</th></tr>
@@ -1651,7 +1697,7 @@ Jackson JSON processor's data binding functionality.</p>
 Jackson JSON processor's data binding functionality.</p>
 <p><b>URL: </b><a class="externalLink" href="http://jackson.codehaus.org">http://jackson.codehaus.org</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></p></td></tr></table></div></li>
-<li>com.google.inject:guice:jar:3.0 (compile) <img id="_img173" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep172', '_img173' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep172" style="display:none">
+<li>com.google.inject:guice:jar:3.0 (compile) <img id="_img179" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep178', '_img179' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep178" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Google Guice - Core Library</th></tr>
@@ -1661,7 +1707,7 @@ Jackson JSON processor's data binding functionality.</p>
 <p><b>URL: </b><a class="externalLink" href="http://code.google.com/p/google-guice/guice/">http://code.google.com/p/google-guice/guice/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>aopalliance:aopalliance:jar:1.0 (compile) <img id="_img175" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep174', '_img175' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep174" style="display:none">
+<li>aopalliance:aopalliance:jar:1.0 (compile) <img id="_img181" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep180', '_img181' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep180" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>AOP alliance</th></tr>
@@ -1670,7 +1716,7 @@ Jackson JSON processor's data binding functionality.</p>
 <p><b>Description: </b>AOP Alliance</p>
 <p><b>URL: </b><a class="externalLink" href="http://aopalliance.sourceforge.net">http://aopalliance.sourceforge.net</a></p>
 <p><b>Project Licenses: </b>Public Domain</p></td></tr></table></div></li></ul></li></ul></li>
-<li>com.google.inject.extensions:guice-servlet:jar:3.0 (compile) <img id="_img177" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep176', '_img177' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep176" style="display:none">
+<li>com.google.inject.extensions:guice-servlet:jar:3.0 (compile) <img id="_img183" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep182', '_img183' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep182" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Google Guice - Extensions - Servlet</th></tr>
@@ -1679,7 +1725,7 @@ Jackson JSON processor's data binding functionality.</p>
 <p><b>Description: </b>Guice is a lightweight dependency injection framework for Java 5 and above</p>
 <p><b>URL: </b><a class="externalLink" href="http://code.google.com/p/google-guice/extensions-parent/guice-servlet/">http://code.google.com/p/google-guice/extensions-parent/guice-servlet/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.apache.hadoop:hadoop-hdfs:jar:2.7.1 (compile) <img id="_img179" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep178', '_img179' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep178" style="display:none">
+<li>org.apache.hadoop:hadoop-hdfs:jar:2.7.1 (compile) <img id="_img185" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep184', '_img185' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep184" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Apache Hadoop HDFS</th></tr>
@@ -1688,7 +1734,7 @@ Jackson JSON processor's data binding functionality.</p>
 <p><b>Description: </b>Apache Hadoop HDFS</p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.mortbay.jetty:jetty:jar:6.1.26 (compile) <img id="_img181" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep180', '_img181' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep180" style="display:none">
+<li>org.mortbay.jetty:jetty:jar:6.1.26 (compile) <img id="_img187" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep186', '_img187' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep186" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty Server</th></tr>
@@ -1697,7 +1743,7 @@ Jackson JSON processor's data binding functionality.</p>
 <p><b>Description: </b>Jetty server core</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-parent/project/modules/jetty">http://www.eclipse.org/jetty/jetty-parent/project/modules/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.mortbay.jetty:jetty-util:jar:6.1.26 (compile) <img id="_img183" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep182', '_img183' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep182" style="display:none">
+<li>org.mortbay.jetty:jetty-util:jar:6.1.26 (compile) <img id="_img189" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep188', '_img189' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep188" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty Utilities</th></tr>
@@ -1706,7 +1752,7 @@ Jackson JSON processor's data binding functionality.</p>
 <p><b>Description: </b>Utility classes for Jetty</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-parent/project/jetty-util">http://www.eclipse.org/jetty/jetty-parent/project/jetty-util</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>commons-daemon:commons-daemon:jar:1.0.13 (compile) <img id="_img185" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep184', '_img185' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep184" style="display:none">
+<li>commons-daemon:commons-daemon:jar:1.0.13 (compile) <img id="_img191" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep190', '_img191' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep190" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Commons Daemon</th></tr>
@@ -1715,7 +1761,7 @@ Jackson JSON processor's data binding functionality.</p>
 <p><b>Description: </b>Apache Commons Daemon software provides an alternative invocation mechanism for unix-daemon-like Java code.</p>
 <p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/daemon/">http://commons.apache.org/daemon/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>io.netty:netty-all:jar:4.0.23.Final (compile) <img id="_img187" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep186', '_img187' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep186" style="display:none">
+<li>io.netty:netty-all:jar:4.0.23.Final (compile) <img id="_img193" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep192', '_img193' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep192" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Netty/All-in-One</th></tr>
@@ -1726,7 +1772,7 @@ Jackson JSON processor's data binding functionality.</p>
     clients.</p>
 <p><b>URL: </b><a class="externalLink" href="http://netty.io/netty-all/">http://netty.io/netty-all/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.fusesource.leveldbjni:leveldbjni-all:jar:1.8 (compile) <img id="_img189" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep188', '_img189' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep188" style="display:none">
+<li>org.fusesource.leveldbjni:leveldbjni-all:jar:1.8 (compile) <img id="_img195" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep194', '_img195' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep194" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>leveldbjni-all</th></tr>
@@ -1735,7 +1781,7 @@ Jackson JSON processor's data binding functionality.</p>
 <p><b>Description: </b>An uber jar which contains all the leveldbjni platform libraries and dependencies</p>
 <p><b>URL: </b><a class="externalLink" href="http://leveldbjni.fusesource.org/leveldbjni-all">http://leveldbjni.fusesource.org/leveldbjni-all</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.opensource.org/licenses/BSD-3-Clause">The BSD 3-Clause License</a></p></td></tr></table></div></li></ul></li></ul></li></ul></li>
-<li>com.github.stephenc.findbugs:findbugs-annotations:jar:1.3.9-1 (provided) <img id="_img191" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep190', '_img191' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep190" style="display:none">
+<li>com.github.stephenc.findbugs:findbugs-annotations:jar:1.3.9-1 (provided) <img id="_img197" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep196', '_img197' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep196" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Findbugs Annotations under Apache License</th></tr>
@@ -1745,7 +1791,7 @@ Jackson JSON processor's data binding functionality.</p>
     by the javadocs and at http://findbugs.sourceforge.net/manual/annotations.html.</p>
 <p><b>URL: </b><a class="externalLink" href="http://stephenc.github.com/findbugs-annotations">http://stephenc.github.com/findbugs-annotations</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>log4j:log4j:jar:1.2.17 (provided) <img id="_img193" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep192', '_img193' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep192" style="display:none">
+<li>log4j:log4j:jar:1.2.17 (provided) <img id="_img199" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep198', '_img199' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep198" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Apache Log4j</th></tr>
@@ -1754,7 +1800,7 @@ Jackson JSON processor's data binding functionality.</p>
 <p><b>Description: </b>Apache Log4j 1.2</p>
 <p><b>URL: </b><a class="externalLink" href="http://logging.apache.org/log4j/1.2/">http://logging.apache.org/log4j/1.2/</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>junit:junit:jar:4.12 (provided) <img id="_img195" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep194', '_img195' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep194" style="display:none">
+<li>junit:junit:jar:4.12 (provided) <img id="_img201" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep200', '_img201' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep200" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>JUnit</th></tr>
@@ -1764,7 +1810,7 @@ Jackson JSON processor's data binding functionality.</p>
 <p><b>URL: </b><a class="externalLink" href="http://junit.org">http://junit.org</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License 1.0</a></p></td></tr></table></div>
 <ul>
-<li>org.hamcrest:hamcrest-core:jar:1.3 (test) <img id="_img197" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep196', '_img197' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep196" style="display:none">
+<li>org.hamcrest:hamcrest-core:jar:1.3 (test) <img id="_img203" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep202', '_img203' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep202" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Hamcrest Core</th></tr>
@@ -1773,7 +1819,7 @@ Jackson JSON processor's data binding functionality.</p>
 <p><b>Description: </b>This is the core API of hamcrest matcher framework to be used by third-party framework providers. This includes the a foundation set of matcher implementations for common operations.</p>
 <p><b>URL: </b><a class="externalLink" href="https://github.com/hamcrest/JavaHamcrest/hamcrest-core">https://github.com/hamcrest/JavaHamcrest/hamcrest-core</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.opensource.org/licenses/bsd-license.php">New BSD License</a></p></td></tr></table></div></li></ul></li>
-<li>org.mockito:mockito-all:jar:1.10.19 (provided) <img id="_img199" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep198', '_img199' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep198" style="display:none">
+<li>org.mockito:mockito-all:jar:1.10.19 (provided) <img id="_img205" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep204', '_img205' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep204" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Mockito</th></tr>
@@ -1800,7 +1846,7 @@ Jackson JSON processor's data binding functionality.</p>
 <p><b>Eclipse Public License - Version 1.0: </b>Jetty :: Http Utility, Jetty :: IO Utility, Jetty :: Security, Jetty Server, Jetty Utilities</p>
 <p><b>The MIT License: </b>Mockito</p>
 <p><b>Apache License, Version 2.0: </b>Apache Commons CLI, Apache Commons Codec, Apache Commons Collections, Apache Commons Crypto, Apache Commons IO, Apache HBase - Annotations, Apache HBase - Client, Apache HBase - Common, Apache HBase - Hadoop Compatibility, Apache HBase - Hadoop Two Compatibility, Apache HBase - Metrics API, Apache HBase - Metrics Implementation, Apache HBase - Prefix Tree, Apache HBase - Procedure, Apache HBase - Protocol, Apache HBase - Replication, Apache HBase - Server, Apache HBase - Shaded - Client, Apache HBase - Shaded - Server, Apache HBase - Shaded Protocol, Apache HBase Patched &amp; Relocated (Shaded) Protobuf, Apache HBase Relocated (Shaded) Netty Libs, Apache HBase Relocated (Shaded) Third-party Miscellaneous Libs, Apache HBase Shaded Packaging Invariants, Apache Hadoop Annotations, Apache Hadoop Auth, Apache Hadoop Client, Apache Hadoop Common, Apache Hadoop Distributed Copy, Apache Hadoop HDFS, Apache HttpClient, Apache HttpCore, Findbugs Annotat
 ions under Apache License, Jettison, Netty/All-in-One, hadoop-mapreduce-client-app, hadoop-mapreduce-client-common, hadoop-mapreduce-client-core, hadoop-mapreduce-client-jobclient, hadoop-mapreduce-client-shuffle, hadoop-yarn-api, hadoop-yarn-client, hadoop-yarn-common, hadoop-yarn-server-common</p>
-<p><b>CDDL + GPLv2 with classpath exception: </b>Java Servlet API</p>
+<p><b>CDDL + GPLv2 with classpath exception: </b>Expression Language 3.0, JSP implementation, Java Servlet API, JavaServer Pages(TM) API</p>
 <p><b>The Apache Software License, Version 2.0: </b>Apache Avro, Apache Commons Logging, Apache Directory API ASN.1 API, Apache Directory LDAP API Utilities, Apache Log4j, ApacheDS I18n, ApacheDS Protocol Kerberos Codec, Commons BeanUtils Core, Commons Compress, Commons Configuration, Commons Daemon, Commons Lang, Commons Math, Commons Net, Curator Client, Curator Framework, Curator Recipes, Data Mapper for Jackson, Digester, Disruptor Framework, Google Guice - Core Library, Google Guice - Extensions - Servlet, Gson, Guava: Google Core Libraries for Java, JAX-RS provider for JSON content type, Jackson, Snappy for Java, Xml Compatibility extensions for Jackson, htrace-core, zookeeper</p></div><a name="Dependency_File_Details"></a>
 <div class="section">
 <h2><a name="Dependency_File_Details"></a>Dependency File Details</h2>
@@ -2040,6 +2086,15 @@ Jackson JSON processor's data binding functionality.</p>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="a">
+<td>javax.servlet.jsp-api-2.3.1.jar</td>
+<td>53.2 kB</td>
+<td>70</td>
+<td>58</td>
+<td>3</td>
+<td>1.7</td>
+<td>Yes</td>
+<td>No</td></tr>
+<tr class="b">
 <td>junit-4.12.jar</td>
 <td>314.9 kB</td>
 <td>323</td>
@@ -2048,7 +2103,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.5</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>log4j-1.2.17.jar</td>
 <td>489.9 kB</td>
 <td>353</td>
@@ -2057,7 +2112,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.4</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>avro-1.7.7.jar</td>
 <td>436.3 kB</td>
 <td>342</td>
@@ -2066,7 +2121,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.6</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>commons-compress-1.4.1.jar</td>
 <td>241.4 kB</td>
 <td>156</td>
@@ -2075,7 +2130,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.5</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>commons-crypto-1.0.0.jar</td>
 <td>134.6 kB</td>
 <td>79</td>
@@ -2084,7 +2139,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.7</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>commons-math-2.2.jar</td>
 <td>988.5 kB</td>
 <td>684</td>
@@ -2093,7 +2148,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.5</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>commons-math3-3.1.1.jar</td>
 <td>1.6 MB</td>
 <td>1034</td>
@@ -2102,7 +2157,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.5</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>curator-client-2.12.0.jar</td>
 <td>2.4 MB</td>
 <td>1781</td>
@@ -2111,7 +2166,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.6</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>curator-framework-2.12.0.jar</td>
 <td>202 kB</td>
 <td>196</td>
@@ -2120,7 +2175,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.6</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>curator-recipes-2.12.0.jar</td>
 <td>283.6 kB</td>
 <td>234</td>
@@ -2129,7 +2184,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.6</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>api-asn1-api-1.0.0-M20.jar</td>
 <td>16.6 kB</td>
 <td>20</td>
@@ -2138,7 +2193,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.6</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>api-util-1.0.0-M20.jar</td>
 <td>79.9 kB</td>
 <td>58</td>
@@ -2147,7 +2202,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.6</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>apacheds-i18n-2.0.0-M15.jar</td>
 <td>44.9 kB</td>
 <td>17</td>
@@ -2156,7 +2211,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.6</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>apacheds-kerberos-codec-2.0.0-M15.jar</td>
 <td>691.5 kB</td>
 <td>604</td>
@@ -2165,7 +2220,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.6</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>hadoop-annotations-2.7.1.jar</td>
 <td>17.4 kB</td>
 <td>27</td>
@@ -2174,7 +2229,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.7</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>hadoop-auth-2.7.1.jar</td>
 <td>70.7 kB</td>
 <td>53</td>
@@ -2183,7 +2238,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.7</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>hadoop-client-2.7.1.jar</td>
 <td>2.5 kB</td>
 <td>7</td>
@@ -2192,7 +2247,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>-</td>
 <td>No</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>hadoop-common-2.7.1.jar</td>
 <td>3.4 MB</td>
 <td>2090</td>
@@ -2201,7 +2256,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.7</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>hadoop-distcp-2.7.1.jar</td>
 <td>102.9 kB</td>
 <td>53</td>
@@ -2210,7 +2265,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.7</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>hadoop-hdfs-2.7.1.jar</td>
 <td>8.3 MB</td>
 <td>3394</td>
@@ -2219,7 +2274,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.7</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>hadoop-mapreduce-client-app-2.7.1.jar</td>
 <td>516.1 kB</td>
 <td>316</td>
@@ -2228,7 +2283,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.7</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>hadoop-mapreduce-client-common-2.7.1.jar</td>
 <td>753 kB</td>
 <td>397</td>
@@ -2237,7 +2292,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.7</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>hadoop-mapreduce-client-core-2.7.1.jar</td>
 <td>1.5 MB</td>
 <td>932</td>
@@ -2246,7 +2301,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.7</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>hadoop-mapreduce-client-jobclient-2.7.1.jar</td>
 <td>38.1 kB</td>
 <td>22</td>
@@ -2255,7 +2310,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.7</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>hadoop-mapreduce-client-shuffle-2.7.1.jar</td>
 <td>45 kB</td>
 <td>28</td>
@@ -2264,7 +2319,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.7</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>hadoop-yarn-api-2.7.1.jar</td>
 <td>2 MB</td>
 <td>898</td>
@@ -2273,7 +2328,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.7</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>hadoop-yarn-client-2.7.1.jar</td>
 <td>142.6 kB</td>
 <td>75</td>
@@ -2282,7 +2337,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.7</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>hadoop-yarn-common-2.7.1.jar</td>
 <td>1.7 MB</td>
 <td>846</td>
@@ -2291,7 +2346,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.7</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>hadoop-yarn-server-common-2.7.1.jar</td>
 <td>363.9 kB</td>
 <td>215</td>
@@ -2300,7 +2355,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.7</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>hbase-annotations/target/classes</td>
 <td>-</td>
 <td>0</td>
@@ -2309,7 +2364,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>-</td>
 <td>No</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>hbase-client/target/classes</td>
 <td>-</td>
 <td>0</td>
@@ -2318,7 +2373,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>-</td>
 <td>No</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>hbase-common/target/classes</td>
 <td>-</td>
 <td>0</td>
@@ -2327,7 +2382,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>-</td>
 <td>No</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>hbase-common-3.0.0-SNAPSHOT-tests.jar</td>
 <td>286.9 kB</td>
 <td>179</td>
@@ -2336,7 +2391,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>hbase-hadoop-compat/target/classes</td>
 <td>-</td>
 <td>0</td>
@@ -2345,7 +2400,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>-</td>
 <td>No</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>hbase-hadoop2-compat/target/classes</td>
 <td>-</td>
 <td>0</td>
@@ -2354,7 +2409,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>-</td>
 <td>No</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>hbase-metrics/target/classes</td>
 <td>-</td>
 <td>0</td>
@@ -2363,7 +2418,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>-</td>
 <td>No</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>hbase-metrics-api/target/classes</td>
 <td>-</td>
 <td>0</td>
@@ -2372,7 +2427,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>-</td>
 <td>No</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>hbase-prefix-tree/target/classes</td>
 <td>-</td>
 <td>0</td>
@@ -2381,7 +2436,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>-</td>
 <td>No</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>hbase-procedure/target/classes</td>
 <td>-</td>
 <td>0</td>
@@ -2390,7 +2445,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>-</td>
 <td>No</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>hbase-protocol/target/classes</td>
 <td>-</td>
 <td>0</td>
@@ -2399,7 +2454,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>-</td>
 <td>No</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>hbase-protocol-shaded/target/classes</td>
 <td>-</td>
 <td>0</td>
@@ -2408,7 +2463,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>-</td>
 <td>No</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>hbase-replication/target/classes</td>
 <td>-</td>
 <td>0</td>
@@ -2417,7 +2472,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>-</td>
 <td>No</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>hbase-server/target/classes</td>
 <td>-</td>
 <td>0</td>
@@ -2426,7 +2481,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>-</td>
 <td>No</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>hbase-shaded-client/target/classes</td>
 <td>-</td>
 <td>0</td>
@@ -2435,7 +2490,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>-</td>
 <td>No</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>hbase-shaded-server/target/classes</td>
 <td>-</td>
 <td>0</td>
@@ -2444,7 +2499,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>-</td>
 <td>No</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>hbase-shaded-miscellaneous-1.0.1.jar</td>
 <td>3.1 MB</td>
 <td>2139</td>
@@ -2453,7 +2508,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>hbase-shaded-netty-1.0.1.jar</td>
 <td>3.9 MB</td>
 <td>2522</td>
@@ -2462,7 +2517,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.6</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>hbase-shaded-protobuf-1.0.1.jar</td>
 <td>1.4 MB</td>
 <td>608</td>
@@ -2471,7 +2526,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.6</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>htrace-core-3.2.0-incubating.jar</td>
 <td>1.5 MB</td>
 <td>822</td>
@@ -2480,7 +2535,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.6</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>httpclient-4.5.3.jar</td>
 <td>747.8 kB</td>
 <td>507</td>
@@ -2489,7 +2544,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.6</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>httpcore-4.4.6.jar</td>
 <td>323.8 kB</td>
 <td>282</td>
@@ -2498,7 +2553,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.6</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>zookeeper-3.4.10.jar</td>
 <td>871.4 kB</td>
 <td>493</td>
@@ -2507,7 +2562,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.6</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>jackson-core-asl-1.9.13.jar</td>
 <td>232.2 kB</td>
 <td>137</td>
@@ -2516,7 +2571,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.5</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>jackson-jaxrs-1.9.13.jar</td>
 <td>18.3 kB</td>
 <td>17</td>
@@ -2525,7 +2580,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.5</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>jackson-mapper-asl-1.9.13.jar</td>
 <td>780.7 kB</td>
 <td>529</td>
@@ -2534,7 +2589,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.5</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>jackson-xc-1.9.13.jar</td>
 <td>27.1 kB</td>
 <td>19</td>
@@ -2543,7 +2598,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.5</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>jettison-1.3.8.jar</td>
 <td>87.8 kB</td>
 <td>62</td>
@@ -2552,7 +2607,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.6</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>jetty-http-9.4.6.v20170531.jar</td>
 <td>163.9 kB</td>
 <td>99</td>
@@ -2561,7 +2616,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>jetty-io-9.4.6.v20170531.jar</td>
 <td>128.8 kB</td>
 <td>102</td>
@@ -2570,7 +2625,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>jetty-security-9.4.6.v20170531.jar</td>
 <td>93.1 kB</td>
 <td>65</td>
@@ -2579,7 +2634,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>leveldbjni-all-1.8.jar</td>
 <td>1 MB</td>
 <td>102</td>
@@ -2588,7 +2643,25 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.6</td>
 <td>Yes</td>
 <td>No</td></tr>
+<tr class="a">
+<td>javax.el-3.0.1-b08.jar</td>
+<td>237.8 kB</td>
+<td>181</td>
+<td>162</td>
+<td>6</td>
+<td>1.7</td>
+<td>Yes</td>
+<td>No</td></tr>
 <tr class="b">
+<td>javax.servlet.jsp-2.3.2.jar</td>
+<td>547.7 kB</td>
+<td>253</td>
+<td>226</td>
+<td>9</td>
+<td>1.7</td>
+<td>Yes</td>
+<td>No</td></tr>
+<tr class="a">
 <td>hamcrest-core-1.3.jar</td>
 <td>45 kB</td>
 <td>52</td>
@@ -2597,7 +2670,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.5</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>jamon-runtime-2.4.1.jar</td>
 <td>24.5 kB</td>
 <td>47</td>
@@ -2606,7 +2679,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.6</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>jcodings-1.0.18.jar</td>
 <td>1.6 MB</td>
 <td>731</td>
@@ -2615,7 +2688,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.5</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>joni-2.1.11.jar</td>
 <td>192.3 kB</td>
 <td>111</td>
@@ -2624,7 +2697,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.5</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>mockito-all-1.10.19.jar</td>
 <td>1.2 MB</td>
 <td>1215</td>
@@ -2633,7 +2706,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.5</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>jetty-6.1.26.jar</td>
 <td>539.9 kB</td>
 <td>267</td>
@@ -2642,7 +2715,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.4</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>jetty-util-6.1.26.jar</td>
 <td>177.1 kB</td>
 <td>120</td>
@@ -2651,7 +2724,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.4</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>slf4j-api-1.7.24.jar</td>
 <td>41.2 kB</td>
 <td>46</td>
@@ -2660,7 +2733,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.5</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <td>slf4j-log4j12-1.6.1.jar</td>
 <td>9.8 kB</td>
 <td>16</td>
@@ -2669,7 +2742,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.3</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>xz-1.0.jar</td>
 <td>94.7 kB</td>
 <td>115</td>
@@ -2678,7 +2751,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.4</td>
 <td>No</td>
 <td>Yes</td></tr>
-<tr class="b">
+<tr class="a">
 <td>snappy-java-1.0.5.jar</td>
 <td>1.3 MB</td>
 <td>51</td>
@@ -2687,7 +2760,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.6</td>
 <td>Yes</td>
 <td>No</td></tr>
-<tr class="a">
+<tr class="b">
 <td>xmlenc-0.52.jar</td>
 <td>15 kB</td>
 <td>17</td>
@@ -2696,7 +2769,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>1.3</td>
 <td>No</td>
 <td>No</td></tr>
-<tr class="b">
+<tr class="a">
 <th>Total</th>
 <th>Size</th>
 <th>Entries</th>
@@ -2705,25 +2778,25 @@ Jackson JSON processor's data binding functionality.</p>
 <th>Java Version</th>
 <th>Debug Information</th>
 <th>Sealed</th></tr>
-<tr class="a">
-<td>98</td>
-<td>55.1 MB</td>
-<td>32686</td>
-<td>29277</td>
-<td>1187</td>
+<tr class="b">
+<td>101</td>
+<td>55.9 MB</td>
+<td>33190</td>
+<td>29723</td>
+<td>1205</td>
 <td>1.8</td>
-<td>80</td>
+<td>83</td>
 <td>1</td></tr>
-<tr class="b">
-<td>compile: 91</td>
-<td>compile: 52.7 MB</td>
-<td>compile: 30530</td>
-<td>compile: 27704</td>
-<td>compile: 1042</td>
+<tr class="a">
+<td>compile: 94</td>
+<td>compile: 53.5 MB</td>
+<td>compile: 31034</td>
+<td>compile: 28150</td>
+<td>compile: 1060</td>
 <td>-</td>
-<td>compile: 74</td>
+<td>compile: 77</td>
 <td>compile: 1</td></tr>
-<tr class="a">
+<tr class="b">
 <td>test: 2</td>
 <td>test: 332 kB</td>
 <td>test: 231</td>
@@ -2732,7 +2805,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>-</td>
 <td>test: 2</td>
 <td>-</td></tr>
-<tr class="b">
+<tr class="a">
 <td>runtime: 1</td>
 <td>runtime: 4.1 kB</td>
 <td>-</td>
@@ -2741,7 +2814,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>-</td>
 <td>-</td>
 <td>-</td></tr>
-<tr class="a">
+<tr class="b">
 <td>provided: 4</td>
 <td>provided: 2.1 MB</td>
 <td>provided: 1925</td>
@@ -2762,7 +2835,7 @@ Jackson JSON processor's data binding functionality.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-annotations/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-annotations/dependency-convergence.html b/hbase-build-configuration/hbase-annotations/dependency-convergence.html
index a3a85e1..cf03503 100644
--- a/hbase-build-configuration/hbase-annotations/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-annotations/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
 <td>304</td></tr>
 <tr class="b">
 <th>Number of unique artifacts (NOA):</th>
-<td>329</td></tr>
+<td>330</td></tr>
 <tr class="a">
 <th>Number of version-conflicting artifacts (NOC):</th>
 <td>17</td></tr>
@@ -423,7 +423,7 @@
 <li>org.apache.hbase:hbase-endpoint:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-
 media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-examples:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-
 media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-external-blockcache:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.me
 dia:jersey-media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
-<li>org.apache.hbase:hbase-it:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-
 jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
+<li>org.apache.hbase:hbase-it:jar:3.0.0-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />|&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />\-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;\-&#16
 0;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br /></li><br />
 <li>org.apache.hbase:hbase-mapreduce:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey
 -media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-rest:jar:3.0.0-SNAPSHOT<br />\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-rsgroup:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-m
 edia-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
@@ -615,7 +615,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-annotations/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-annotations/dependency-info.html b/hbase-build-configuration/hbase-annotations/dependency-info.html
index f0a9b20..e961e3b 100644
--- a/hbase-build-configuration/hbase-annotations/dependency-info.html
+++ b/hbase-build-configuration/hbase-annotations/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-annotations/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-annotations/dependency-management.html b/hbase-build-configuration/hbase-annotations/dependency-management.html
index a3de3dc..3862d9c 100644
--- a/hbase-build-configuration/hbase-annotations/dependency-management.html
+++ b/hbase-build-configuration/hbase-annotations/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -585,30 +585,36 @@
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
 <tr class="b">
+<td>org.glassfish.web</td>
+<td><a class="externalLink" href="http://jsp.java.net">javax.servlet.jsp</a></td>
+<td>2.3.2</td>
+<td>jar</td>
+<td><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
+<tr class="a">
 <td>org.jamon</td>
 <td><a class="externalLink" href="http://www.jamon.org/jamon-java-parent/jamon-runtime/">jamon-runtime</a></td>
 <td>2.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/2.0">Mozilla Public License Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby</td>
 <td><a class="externalLink" href="https://github.com/jruby/jruby/jruby-artifacts/jruby-complete">jruby-complete</a></td>
 <td>9.1.10.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.gnu.org/licenses/gpl-2.0-standalone.html">GPL 2</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1-standalone.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">EPL</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
 <td>1.7.24</td>
@@ -760,7 +766,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-annotations/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-annotations/index.html b/hbase-build-configuration/hbase-annotations/index.html
index 34008d1..7b3c871 100644
--- a/hbase-build-configuration/hbase-annotations/index.html
+++ b/hbase-build-configuration/hbase-annotations/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-annotations/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-annotations/integration.html b/hbase-build-configuration/hbase-annotations/integration.html
index 1294c70..d76a94a 100644
--- a/hbase-build-configuration/hbase-annotations/integration.html
+++ b/hbase-build-configuration/hbase-annotations/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-annotations/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-annotations/issue-tracking.html b/hbase-build-configuration/hbase-annotations/issue-tracking.html
index e4dc5eb..2e1ad61 100644
--- a/hbase-build-configuration/hbase-annotations/issue-tracking.html
+++ b/hbase-build-configuration/hbase-annotations/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-annotations/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-annotations/license.html b/hbase-build-configuration/hbase-annotations/license.html
index b16b78e..6a160ea 100644
--- a/hbase-build-configuration/hbase-annotations/license.html
+++ b/hbase-build-configuration/hbase-annotations/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-annotations/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-annotations/mail-lists.html b/hbase-build-configuration/hbase-annotations/mail-lists.html
index 605a23b..4826038 100644
--- a/hbase-build-configuration/hbase-annotations/mail-lists.html
+++ b/hbase-build-configuration/hbase-annotations/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-annotations/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-annotations/plugin-management.html b/hbase-build-configuration/hbase-annotations/plugin-management.html
index 292bfd7..c9731c9 100644
--- a/hbase-build-configuration/hbase-annotations/plugin-management.html
+++ b/hbase-build-configuration/hbase-annotations/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-annotations/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-annotations/plugins.html b/hbase-build-configuration/hbase-annotations/plugins.html
index a597702..336d6ea 100644
--- a/hbase-build-configuration/hbase-annotations/plugins.html
+++ b/hbase-build-configuration/hbase-annotations/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -226,7 +226,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-annotations/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-annotations/project-info.html b/hbase-build-configuration/hbase-annotations/project-info.html
index ba65203..15e705e 100644
--- a/hbase-build-configuration/hbase-annotations/project-info.html
+++ b/hbase-build-configuration/hbase-annotations/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-annotations/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-annotations/project-reports.html b/hbase-build-configuration/hbase-annotations/project-reports.html
index 48d5d03..0f5fd59 100644
--- a/hbase-build-configuration/hbase-annotations/project-reports.html
+++ b/hbase-build-configuration/hbase-annotations/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-annotations/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-annotations/project-summary.html b/hbase-build-configuration/hbase-annotations/project-summary.html
index ba60c65..c842f7c 100644
--- a/hbase-build-configuration/hbase-annotations/project-summary.html
+++ b/hbase-build-configuration/hbase-annotations/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-annotations/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-annotations/source-repository.html b/hbase-build-configuration/hbase-annotations/source-repository.html
index 32d75ea..9c9dafd 100644
--- a/hbase-build-configuration/hbase-annotations/source-repository.html
+++ b/hbase-build-configuration/hbase-annotations/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-annotations/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-annotations/team-list.html b/hbase-build-configuration/hbase-annotations/team-list.html
index 793d6c8..b47d7fc 100644
--- a/hbase-build-configuration/hbase-annotations/team-list.html
+++ b/hbase-build-configuration/hbase-annotations/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -529,7 +529,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependencies.html b/hbase-build-configuration/hbase-archetypes/dependencies.html
index b7531b6..1f0c44c 100644
--- a/hbase-build-configuration/hbase-archetypes/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -272,7 +272,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/dependency-convergence.html
index 6fd26ad..1217903 100644
--- a/hbase-build-configuration/hbase-archetypes/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
 <td>304</td></tr>
 <tr class="b">
 <th>Number of unique artifacts (NOA):</th>
-<td>329</td></tr>
+<td>330</td></tr>
 <tr class="a">
 <th>Number of version-conflicting artifacts (NOC):</th>
 <td>17</td></tr>
@@ -423,7 +423,7 @@
 <li>org.apache.hbase:hbase-endpoint:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-
 media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-examples:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-
 media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-external-blockcache:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.me
 dia:jersey-media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
-<li>org.apache.hbase:hbase-it:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-
 jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
+<li>org.apache.hbase:hbase-it:jar:3.0.0-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />|&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />\-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;\-&#16
 0;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br /></li><br />
 <li>org.apache.hbase:hbase-mapreduce:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey
 -media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-rest:jar:3.0.0-SNAPSHOT<br />\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-rsgroup:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-m
 edia-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
@@ -615,7 +615,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependency-info.html b/hbase-build-configuration/hbase-archetypes/dependency-info.html
index eda7b52..1bef200 100644
--- a/hbase-build-configuration/hbase-archetypes/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependency-management.html b/hbase-build-configuration/hbase-archetypes/dependency-management.html
index b2720e2..e3a7c96 100644
--- a/hbase-build-configuration/hbase-archetypes/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -585,30 +585,36 @@
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
 <tr class="b">
+<td>org.glassfish.web</td>
+<td><a class="externalLink" href="http://jsp.java.net">javax.servlet.jsp</a></td>
+<td>2.3.2</td>
+<td>jar</td>
+<td><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
+<tr class="a">
 <td>org.jamon</td>
 <td><a class="externalLink" href="http://www.jamon.org/jamon-java-parent/jamon-runtime/">jamon-runtime</a></td>
 <td>2.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/2.0">Mozilla Public License Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby</td>
 <td><a class="externalLink" href="https://github.com/jruby/jruby/jruby-artifacts/jruby-complete">jruby-complete</a></td>
 <td>9.1.10.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.gnu.org/licenses/gpl-2.0-standalone.html">GPL 2</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1-standalone.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">EPL</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
 <td>1.7.24</td>
@@ -760,7 +766,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html
index 5d7a762..fed7211 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -272,7 +272,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
index eacf993..0407126 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
 <td>304</td></tr>
 <tr class="b">
 <th>Number of unique artifacts (NOA):</th>
-<td>329</td></tr>
+<td>330</td></tr>
 <tr class="a">
 <th>Number of version-conflicting artifacts (NOC):</th>
 <td>17</td></tr>
@@ -423,7 +423,7 @@
 <li>org.apache.hbase:hbase-endpoint:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-
 media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-examples:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-
 media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-external-blockcache:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.me
 dia:jersey-media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
-<li>org.apache.hbase:hbase-it:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-
 jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
+<li>org.apache.hbase:hbase-it:jar:3.0.0-SNAPSHOT<br />+-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />|&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />|&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1:compile<br />|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />\-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;\-&#16
 0;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br /></li><br />
 <li>org.apache.hbase:hbase-mapreduce:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey
 -media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-rest:jar:3.0.0-SNAPSHOT<br />\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
 <li>org.apache.hbase:hbase-rsgroup:jar:3.0.0-SNAPSHOT<br />\-&#160;org.apache.hbase:hbase-server:jar:3.0.0-SNAPSHOT:compile<br />&#160;&#160;&#160;\-&#160;org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;+-&#160;org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;org.glassfish.jersey.media:jersey-m
 edia-jaxb:jar:2.25.1:compile<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;\-&#160;(org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile - omitted for duplicate)<br /></li><br />
@@ -615,7 +615,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html
index 5e3803e..7692a3a 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html
index 6a8d35f..c370472 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -585,30 +585,36 @@
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
 <tr class="b">
+<td>org.glassfish.web</td>
+<td><a class="externalLink" href="http://jsp.java.net">javax.servlet.jsp</a></td>
+<td>2.3.2</td>
+<td>jar</td>
+<td><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
+<tr class="a">
 <td>org.jamon</td>
 <td><a class="externalLink" href="http://www.jamon.org/jamon-java-parent/jamon-runtime/">jamon-runtime</a></td>
 <td>2.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/2.0">Mozilla Public License Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby</td>
 <td><a class="externalLink" href="https://github.com/jruby/jruby/jruby-artifacts/jruby-complete">jruby-complete</a></td>
 <td>9.1.10.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.gnu.org/licenses/gpl-2.0-standalone.html">GPL 2</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1-standalone.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">EPL</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
 <td>1.7.24</td>
@@ -760,7 +766,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html
index fe02e8e..9303bb5 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html
index 821d0d1..ec9fc93 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
index 64c99e3..78c1cf6 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html
index 95cdc94..aae27f3 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -111,209 +111,7 @@
 <h2><a name="Project_Licenses"></a>Project Licenses</h2><a name="Project_Licenses"></a>
 <div class="section">
 <h3><a name="Apache_License_Version_2.0"></a>Apache License, Version 2.0</h3><a name="Apache_License_Version_2.0"></a>
-<div class="source"><pre class="prettyprint">
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      &quot;License&quot; shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      &quot;Licensor&quot; shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      &quot;Legal Entity&quot; shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      &quot;control&quot; means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      &quot;You&quot; (or &quot;Your&quot;) shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      &quot;Source&quot; form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      &quot;Object&quot; form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      &quot;Work&quot; shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      &quot;Derivative Works&quot; shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      &quot;Contribution&quot; shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, &quot;submitted&quot;
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as &quot;Not a Contribution.&quot;
-
-      &quot;Contributor&quot; shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a &quot;NOTICE&quot; text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an &quot;AS IS&quot; BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets &quot;[]&quot;
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same &quot;printed page&quot; as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-</pre></div></div></div>
+<p>Can't read the url [https://www.apache.org/licenses/LICENSE-2.0.txt] : connect timed out</p></div></div>
                   </div>
           </div>
 
@@ -326,7 +124,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
index 5d8dda9..e360ad4 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
index 5aba731..4163f5c 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/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="20170904" />
+    <meta name="Date-Revision-yyyymmdd" content="20170905" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-09-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-09-05</li>
             </p>
                 </div>
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.Options.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.Options.html b/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.Options.html
index a73c866..dd2d739 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.Options.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.Options.html
@@ -834,289 +834,287 @@
 <span class="sourceLineNo">826</span><a name="line.826"></a>
 <span class="sourceLineNo">827</span>    // Run the MR Job<a name="line.827"></a>
 <span class="sourceLineNo">828</span>    if (!job.waitForCompletion(true)) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>      // TODO: Replace the fixed string with job.getStatus().getFailureInfo()<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      // when it will be available on all the supported versions.<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      throw new ExportSnapshotException("Copy Files Map-Reduce Job failed");<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    }<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  }<a name="line.833"></a>
-<span class="sourceLineNo">834</span><a name="line.834"></a>
-<span class="sourceLineNo">835</span>  private void verifySnapshot(final Configuration baseConf,<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      final FileSystem fs, final Path rootDir, final Path snapshotDir) throws IOException {<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    // Update the conf with the current root dir, since may be a different cluster<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    Configuration conf = new Configuration(baseConf);<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    FSUtils.setRootDir(conf, rootDir);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    FSUtils.setFsDefault(conf, FSUtils.getRootDir(conf));<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    SnapshotDescription snapshotDesc = SnapshotDescriptionUtils.readSnapshotInfo(fs, snapshotDir);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    SnapshotReferenceUtil.verifySnapshot(conf, fs, snapshotDir, snapshotDesc);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>  }<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>   * Set path ownership.<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   */<a name="line.847"></a>
-<span class="sourceLineNo">848</span>  private void setOwner(final FileSystem fs, final Path path, final String user,<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      final String group, final boolean recursive) throws IOException {<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    if (user != null || group != null) {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.851"></a>
-<span class="sourceLineNo">852</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          setOwner(fs, child.getPath(), user, group, recursive);<a name="line.853"></a>
-<span class="sourceLineNo">854</span>        }<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      }<a name="line.855"></a>
-<span class="sourceLineNo">856</span>      fs.setOwner(path, user, group);<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    }<a name="line.857"></a>
-<span class="sourceLineNo">858</span>  }<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>  /**<a name="line.860"></a>
-<span class="sourceLineNo">861</span>   * Set path permission.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   */<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  private void setPermission(final FileSystem fs, final Path path, final short filesMode,<a name="line.863"></a>
-<span class="sourceLineNo">864</span>      final boolean recursive) throws IOException {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (filesMode &gt; 0) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      FsPermission perm = new FsPermission(filesMode);<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>          setPermission(fs, child.getPath(), filesMode, recursive);<a name="line.869"></a>
-<span class="sourceLineNo">870</span>        }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      fs.setPermission(path, perm);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>    }<a name="line.873"></a>
-<span class="sourceLineNo">874</span>  }<a name="line.874"></a>
-<span class="sourceLineNo">875</span><a name="line.875"></a>
-<span class="sourceLineNo">876</span>  private boolean verifyTarget = true;<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  private boolean verifyChecksum = true;<a name="line.877"></a>
-<span class="sourceLineNo">878</span>  private String snapshotName = null;<a name="line.878"></a>
-<span class="sourceLineNo">879</span>  private String targetName = null;<a name="line.879"></a>
-<span class="sourceLineNo">880</span>  private boolean overwrite = false;<a name="line.880"></a>
-<span class="sourceLineNo">881</span>  private String filesGroup = null;<a name="line.881"></a>
-<span class="sourceLineNo">882</span>  private String filesUser = null;<a name="line.882"></a>
-<span class="sourceLineNo">883</span>  private Path outputRoot = null;<a name="line.883"></a>
-<span class="sourceLineNo">884</span>  private Path inputRoot = null;<a name="line.884"></a>
-<span class="sourceLineNo">885</span>  private int bandwidthMB = Integer.MAX_VALUE;<a name="line.885"></a>
-<span class="sourceLineNo">886</span>  private int filesMode = 0;<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  private int mappers = 0;<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  @Override<a name="line.889"></a>
-<span class="sourceLineNo">890</span>  protected void processOptions(CommandLine cmd) {<a name="line.890"></a>
-<span class="sourceLineNo">891</span>    snapshotName = cmd.getOptionValue(Options.SNAPSHOT.getLongOpt(), snapshotName);<a name="line.891"></a>
-<span class="sourceLineNo">892</span>    targetName = cmd.getOptionValue(Options.TARGET_NAME.getLongOpt(), targetName);<a name="line.892"></a>
-<span class="sourceLineNo">893</span>    if (cmd.hasOption(Options.COPY_TO.getLongOpt())) {<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      outputRoot = new Path(cmd.getOptionValue(Options.COPY_TO.getLongOpt()));<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    if (cmd.hasOption(Options.COPY_FROM.getLongOpt())) {<a name="line.896"></a>
-<span class="sourceLineNo">897</span>      inputRoot = new Path(cmd.getOptionValue(Options.COPY_FROM.getLongOpt()));<a name="line.897"></a>
-<span class="sourceLineNo">898</span>    }<a name="line.898"></a>
-<span class="sourceLineNo">899</span>    mappers = getOptionAsInt(cmd, Options.MAPPERS.getLongOpt(), mappers);<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    filesUser = cmd.getOptionValue(Options.CHUSER.getLongOpt(), filesUser);<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    filesGroup = cmd.getOptionValue(Options.CHGROUP.getLongOpt(), filesGroup);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>    filesMode = getOptionAsInt(cmd, Options.CHMOD.getLongOpt(), filesMode);<a name="line.902"></a>
-<span class="sourceLineNo">903</span>    bandwidthMB = getOptionAsInt(cmd, Options.BANDWIDTH.getLongOpt(), bandwidthMB);<a name="line.903"></a>
-<span class="sourceLineNo">904</span>    overwrite = cmd.hasOption(Options.OVERWRITE.getLongOpt());<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    // And verifyChecksum and verifyTarget with values read from old args in processOldArgs(...).<a name="line.905"></a>
-<span class="sourceLineNo">906</span>    verifyChecksum = !cmd.hasOption(Options.NO_CHECKSUM_VERIFY.getLongOpt());<a name="line.906"></a>
-<span class="sourceLineNo">907</span>    verifyTarget = !cmd.hasOption(Options.NO_TARGET_VERIFY.getLongOpt());<a name="line.907"></a>
-<span class="sourceLineNo">908</span>  }<a name="line.908"></a>
-<span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>  /**<a name="line.910"></a>
-<span class="sourceLineNo">911</span>   * Execute the export snapshot by copying the snapshot metadata, hfiles and wals.<a name="line.911"></a>
-<span class="sourceLineNo">912</span>   * @return 0 on success, and != 0 upon failure.<a name="line.912"></a>
-<span class="sourceLineNo">913</span>   */<a name="line.913"></a>
-<span class="sourceLineNo">914</span>  @Override<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  public int doWork() throws IOException {<a name="line.915"></a>
-<span class="sourceLineNo">916</span>    Configuration conf = getConf();<a name="line.916"></a>
-<span class="sourceLineNo">917</span><a name="line.917"></a>
-<span class="sourceLineNo">918</span>    // Check user options<a name="line.918"></a>
-<span class="sourceLineNo">919</span>    if (snapshotName == null) {<a name="line.919"></a>
-<span class="sourceLineNo">920</span>      System.err.println("Snapshot name not provided.");<a name="line.920"></a>
-<span class="sourceLineNo">921</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      return 0;<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    }<a name="line.923"></a>
-<span class="sourceLineNo">924</span><a name="line.924"></a>
-<span class="sourceLineNo">925</span>    if (outputRoot == null) {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>      System.err.println("Destination file-system (--" + Options.COPY_TO.getLongOpt()<a name="line.926"></a>
-<span class="sourceLineNo">927</span>              + ") not provided.");<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      return 0;<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    }<a name="line.930"></a>
-<span class="sourceLineNo">931</span><a name="line.931"></a>
-<span class="sourceLineNo">932</span>    if (targetName == null) {<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      targetName = snapshotName;<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    }<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    if (inputRoot == null) {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>      inputRoot = FSUtils.getRootDir(conf);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    } else {<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      FSUtils.setRootDir(conf, inputRoot);<a name="line.938"></a>
-<span class="sourceLineNo">939</span>    }<a name="line.939"></a>
-<span class="sourceLineNo">940</span><a name="line.940"></a>
-<span class="sourceLineNo">941</span>    Configuration srcConf = HBaseConfiguration.createClusterConf(conf, null, CONF_SOURCE_PREFIX);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>    srcConf.setBoolean("fs." + inputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    FileSystem inputFs = FileSystem.get(inputRoot.toUri(), srcConf);<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    LOG.debug("inputFs=" + inputFs.getUri().toString() + " inputRoot=" + inputRoot);<a name="line.944"></a>
-<span class="sourceLineNo">945</span>    Configuration destConf = HBaseConfiguration.createClusterConf(conf, null, CONF_DEST_PREFIX);<a name="line.945"></a>
-<span class="sourceLineNo">946</span>    destConf.setBoolean("fs." + outputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.946"></a>
-<span class="sourceLineNo">947</span>    FileSystem outputFs = FileSystem.get(outputRoot.toUri(), destConf);<a name="line.947"></a>
-<span class="sourceLineNo">948</span>    LOG.debug("outputFs=" + outputFs.getUri().toString() + " outputRoot=" + outputRoot.toString());<a name="line.948"></a>
+<span class="sourceLineNo">829</span>      throw new ExportSnapshotException(job.getStatus().getFailureInfo());<a name="line.829"></a>
+<span class="sourceLineNo">830</span>    }<a name="line.830"></a>
+<span class="sourceLineNo">831</span>  }<a name="line.831"></a>
+<span class="sourceLineNo">832</span><a name="line.832"></a>
+<span class="sourceLineNo">833</span>  private void verifySnapshot(final Configuration baseConf,<a name="line.833"></a>
+<span class="sourceLineNo">834</span>      final FileSystem fs, final Path rootDir, final Path snapshotDir) throws IOException {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    // Update the conf with the current root dir, since may be a different cluster<a name="line.835"></a>
+<span class="sourceLineNo">836</span>    Configuration conf = new Configuration(baseConf);<a name="line.836"></a>
+<span class="sourceLineNo">837</span>    FSUtils.setRootDir(conf, rootDir);<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    FSUtils.setFsDefault(conf, FSUtils.getRootDir(conf));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>    SnapshotDescription snapshotDesc = SnapshotDescriptionUtils.readSnapshotInfo(fs, snapshotDir);<a name="line.839"></a>
+<span class="sourceLineNo">840</span>    SnapshotReferenceUtil.verifySnapshot(conf, fs, snapshotDir, snapshotDesc);<a name="line.840"></a>
+<span class="sourceLineNo">841</span>  }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>  /**<a name="line.843"></a>
+<span class="sourceLineNo">844</span>   * Set path ownership.<a name="line.844"></a>
+<span class="sourceLineNo">845</span>   */<a name="line.845"></a>
+<span class="sourceLineNo">846</span>  private void setOwner(final FileSystem fs, final Path path, final String user,<a name="line.846"></a>
+<span class="sourceLineNo">847</span>      final String group, final boolean recursive) throws IOException {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    if (user != null || group != null) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>          setOwner(fs, child.getPath(), user, group, recursive);<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span>      }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>      fs.setOwner(path, user, group);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>    }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>  }<a name="line.856"></a>
+<span class="sourceLineNo">857</span><a name="line.857"></a>
+<span class="sourceLineNo">858</span>  /**<a name="line.858"></a>
+<span class="sourceLineNo">859</span>   * Set path permission.<a name="line.859"></a>
+<span class="sourceLineNo">860</span>   */<a name="line.860"></a>
+<span class="sourceLineNo">861</span>  private void setPermission(final FileSystem fs, final Path path, final short filesMode,<a name="line.861"></a>
+<span class="sourceLineNo">862</span>      final boolean recursive) throws IOException {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>    if (filesMode &gt; 0) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>      FsPermission perm = new FsPermission(filesMode);<a name="line.864"></a>
+<span class="sourceLineNo">865</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>          setPermission(fs, child.getPath(), filesMode, recursive);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>        }<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>      fs.setPermission(path, perm);<a name="line.870"></a>
+<span class="sourceLineNo">871</span>    }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>  }<a name="line.872"></a>
+<span class="sourceLineNo">873</span><a name="line.873"></a>
+<span class="sourceLineNo">874</span>  private boolean verifyTarget = true;<a name="line.874"></a>
+<span class="sourceLineNo">875</span>  private boolean verifyChecksum = true;<a name="line.875"></a>
+<span class="sourceLineNo">876</span>  private String snapshotName = null;<a name="line.876"></a>
+<span class="sourceLineNo">877</span>  private String targetName = null;<a name="line.877"></a>
+<span class="sourceLineNo">878</span>  private boolean overwrite = false;<a name="line.878"></a>
+<span class="sourceLineNo">879</span>  private String filesGroup = null;<a name="line.879"></a>
+<span class="sourceLineNo">880</span>  private String filesUser = null;<a name="line.880"></a>
+<span class="sourceLineNo">881</span>  private Path outputRoot = null;<a name="line.881"></a>
+<span class="sourceLineNo">882</span>  private Path inputRoot = null;<a name="line.882"></a>
+<span class="sourceLineNo">883</span>  private int bandwidthMB = Integer.MAX_VALUE;<a name="line.883"></a>
+<span class="sourceLineNo">884</span>  private int filesMode = 0;<a name="line.884"></a>
+<span class="sourceLineNo">885</span>  private int mappers = 0;<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>  @Override<a name="line.887"></a>
+<span class="sourceLineNo">888</span>  protected void processOptions(CommandLine cmd) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    snapshotName = cmd.getOptionValue(Options.SNAPSHOT.getLongOpt(), snapshotName);<a name="line.889"></a>
+<span class="sourceLineNo">890</span>    targetName = cmd.getOptionValue(Options.TARGET_NAME.getLongOpt(), targetName);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>    if (cmd.hasOption(Options.COPY_TO.getLongOpt())) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>      outputRoot = new Path(cmd.getOptionValue(Options.COPY_TO.getLongOpt()));<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    }<a name="line.893"></a>
+<span class="sourceLineNo">894</span>    if (cmd.hasOption(Options.COPY_FROM.getLongOpt())) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>      inputRoot = new Path(cmd.getOptionValue(Options.COPY_FROM.getLongOpt()));<a name="line.895"></a>
+<span class="sourceLineNo">896</span>    }<a name="line.896"></a>
+<span class="sourceLineNo">897</span>    mappers = getOptionAsInt(cmd, Options.MAPPERS.getLongOpt(), mappers);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    filesUser = cmd.getOptionValue(Options.CHUSER.getLongOpt(), filesUser);<a name="line.898"></a>
+<span class="sourceLineNo">899</span>    filesGroup = cmd.getOptionValue(Options.CHGROUP.getLongOpt(), filesGroup);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>    filesMode = getOptionAsInt(cmd, Options.CHMOD.getLongOpt(), filesMode);<a name="line.900"></a>
+<span class="sourceLineNo">901</span>    bandwidthMB = getOptionAsInt(cmd, Options.BANDWIDTH.getLongOpt(), bandwidthMB);<a name="line.901"></a>
+<span class="sourceLineNo">902</span>    overwrite = cmd.hasOption(Options.OVERWRITE.getLongOpt());<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    // And verifyChecksum and verifyTarget with values read from old args in processOldArgs(...).<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    verifyChecksum = !cmd.hasOption(Options.NO_CHECKSUM_VERIFY.getLongOpt());<a name="line.904"></a>
+<span class="sourceLineNo">905</span>    verifyTarget = !cmd.hasOption(Options.NO_TARGET_VERIFY.getLongOpt());<a name="line.905"></a>
+<span class="sourceLineNo">906</span>  }<a name="line.906"></a>
+<span class="sourceLineNo">907</span><a name="line.907"></a>
+<span class="sourceLineNo">908</span>  /**<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   * Execute the export snapshot by copying the snapshot metadata, hfiles and wals.<a name="line.909"></a>
+<span class="sourceLineNo">910</span>   * @return 0 on success, and != 0 upon failure.<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>  @Override<a name="line.912"></a>
+<span class="sourceLineNo">913</span>  public int doWork() throws IOException {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    Configuration conf = getConf();<a name="line.914"></a>
+<span class="sourceLineNo">915</span><a name="line.915"></a>
+<span class="sourceLineNo">916</span>    // Check user options<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    if (snapshotName == null) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>      System.err.println("Snapshot name not provided.");<a name="line.918"></a>
+<span class="sourceLineNo">919</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.919"></a>
+<span class="sourceLineNo">920</span>      return 0;<a name="line.920"></a>
+<span class="sourceLineNo">921</span>    }<a name="line.921"></a>
+<span class="sourceLineNo">922</span><a name="line.922"></a>
+<span class="sourceLineNo">923</span>    if (outputRoot == null) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>      System.err.println("Destination file-system (--" + Options.COPY_TO.getLongOpt()<a name="line.924"></a>
+<span class="sourceLineNo">925</span>              + ") not provided.");<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      return 0;<a name="line.927"></a>
+<span class="sourceLineNo">928</span>    }<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>    if (targetName == null) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      targetName = snapshotName;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    if (inputRoot == null) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      inputRoot = FSUtils.getRootDir(conf);<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    } else {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>      FSUtils.setRootDir(conf, inputRoot);<a name="line.936"></a>
+<span class="sourceLineNo">937</span>    }<a name="line.937"></a>
+<span class="sourceLineNo">938</span><a name="line.938"></a>
+<span class="sourceLineNo">939</span>    Configuration srcConf = HBaseConfiguration.createClusterConf(conf, null, CONF_SOURCE_PREFIX);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    srcConf.setBoolean("fs." + inputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    FileSystem inputFs = FileSystem.get(inputRoot.toUri(), srcConf);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>    LOG.debug("inputFs=" + inputFs.getUri().toString() + " inputRoot=" + inputRoot);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>    Configuration destConf = HBaseConfiguration.createClusterConf(conf, null, CONF_DEST_PREFIX);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>    destConf.setBoolean("fs." + outputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>    FileSystem outputFs = FileSystem.get(outputRoot.toUri(), destConf);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    LOG.debug("outputFs=" + outputFs.getUri().toString() + " outputRoot=" + outputRoot.toString());<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>    boolean skipTmp = conf.getBoolean(CONF_SKIP_TMP, false);<a name="line.948"></a>
 <span class="sourceLineNo">949</span><a name="line.949"></a>
-<span class="sourceLineNo">950</span>    boolean skipTmp = conf.getBoolean(CONF_SKIP_TMP, false);<a name="line.950"></a>
-<span class="sourceLineNo">951</span><a name="line.951"></a>
-<span class="sourceLineNo">952</span>    Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshotName, inputRoot);<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    Path snapshotTmpDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(targetName, outputRoot);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    Path outputSnapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(targetName, outputRoot);<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    Path initialOutputSnapshotDir = skipTmp ? outputSnapshotDir : snapshotTmpDir;<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>    // Find the necessary directory which need to change owner and group<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    Path needSetOwnerDir = SnapshotDescriptionUtils.getSnapshotRootDir(outputRoot);<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    if (outputFs.exists(needSetOwnerDir)) {<a name="line.959"></a>
-<span class="sourceLineNo">960</span>      if (skipTmp) {<a name="line.960"></a>
-<span class="sourceLineNo">961</span>        needSetOwnerDir = outputSnapshotDir;<a name="line.961"></a>
-<span class="sourceLineNo">962</span>      } else {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>        needSetOwnerDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(outputRoot);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>        if (outputFs.exists(needSetOwnerDir)) {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>          needSetOwnerDir = snapshotTmpDir;<a name="line.965"></a>
-<span class="sourceLineNo">966</span>        }<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
-<span class="sourceLineNo">969</span><a name="line.969"></a>
-<span class="sourceLineNo">970</span>    // Check if the snapshot already exists<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (outputFs.exists(outputSnapshotDir)) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      if (overwrite) {<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        if (!outputFs.delete(outputSnapshotDir, true)) {<a name="line.973"></a>
-<span class="sourceLineNo">974</span>          System.err.println("Unable to remove existing snapshot directory: " + outputSnapshotDir);<a name="line.974"></a>
-<span class="sourceLineNo">975</span>          return 1;<a name="line.975"></a>
-<span class="sourceLineNo">976</span>        }<a name="line.976"></a>
-<span class="sourceLineNo">977</span>      } else {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>        System.err.println("The snapshot '" + targetName +<a name="line.978"></a>
-<span class="sourceLineNo">979</span>          "' already exists in the destination: " + outputSnapshotDir);<a name="line.979"></a>
-<span class="sourceLineNo">980</span>        return 1;<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      }<a name="line.981"></a>
-<span class="sourceLineNo">982</span>    }<a name="line.982"></a>
-<span class="sourceLineNo">983</span><a name="line.983"></a>
-<span class="sourceLineNo">984</span>    if (!skipTmp) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      // Check if the snapshot already in-progress<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      if (outputFs.exists(snapshotTmpDir)) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>        if (overwrite) {<a name="line.987"></a>
-<span class="sourceLineNo">988</span>          if (!outputFs.delete(snapshotTmpDir, true)) {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            System.err.println("Unable to remove existing snapshot tmp directory: "+snapshotTmpDir);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>            return 1;<a name="line.990"></a>
-<span class="sourceLineNo">991</span>          }<a name="line.991"></a>
-<span class="sourceLineNo">992</span>        } else {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>          System.err.println("A snapshot with the same name '"+ targetName +"' may be in-progress");<a name="line.993"></a>
-<span class="sourceLineNo">994</span>          System.err.println("Please check "+snapshotTmpDir+". If the snapshot has completed, ");<a name="line.994"></a>
-<span class="sourceLineNo">995</span>          System.err.println("consider removing "+snapshotTmpDir+" by using the -overwrite option");<a name="line.995"></a>
-<span class="sourceLineNo">996</span>          return 1;<a name="line.996"></a>
-<span class="sourceLineNo">997</span>        }<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      }<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span><a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // Step 1 - Copy fs1:/.snapshot/&lt;snapshot&gt; to  fs2:/.snapshot/.tmp/&lt;snapshot&gt;<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // The snapshot references must be copied before the hfiles otherwise the cleaner<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    // will remove them because they are unreferenced.<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      LOG.info("Copy Snapshot Manifest");<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      FileUtil.copy(inputFs, snapshotDir, outputFs, initialOutputSnapshotDir, false, false, conf);<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    } catch (IOException e) {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      throw new ExportSnapshotException("Failed to copy the snapshot directory: from=" +<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>        snapshotDir + " to=" + initialOutputSnapshotDir, e);<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    } finally {<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      if (filesUser != null || filesGroup != null) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        LOG.warn((filesUser == null ? "" : "Change the owner of " + needSetOwnerDir + " to "<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>            + filesUser)<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>            + (filesGroup == null ? "" : ", Change the group of " + needSetOwnerDir + " to "<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>            + filesGroup));<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        setOwner(outputFs, needSetOwnerDir, filesUser, filesGroup, true);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>      }<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      if (filesMode &gt; 0) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>        LOG.warn("Change the permission of " + needSetOwnerDir + " to " + filesMode);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        setPermission(outputFs, needSetOwnerDir, (short)filesMode, true);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    }<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span><a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    // Write a new .snapshotinfo if the target name is different from the source name<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    if (!targetName.equals(snapshotName)) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      SnapshotDescription snapshotDesc =<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>        SnapshotDescriptionUtils.readSnapshotInfo(inputFs, snapshotDir)<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>          .toBuilder()<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          .setName(targetName)<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>          .build();<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>      SnapshotDescriptionUtils.writeSnapshotInfo(snapshotDesc, initialOutputSnapshotDir, outputFs);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>      if (filesUser != null || filesGroup != null) {<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>        outputFs.setOwner(new Path(initialOutputSnapshotDir,<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), filesUser, filesGroup);<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>      }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>      if (filesMode &gt; 0) {<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>        outputFs.setPermission(new Path(initialOutputSnapshotDir,<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), new FsPermission((short)filesMode));<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>      }<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>    // Step 2 - Start MR Job to copy files<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    // The snapshot references must be copied before the files otherwise the files gets removed<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>    // by the HFileArchiver, since they have no references.<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>    try {<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>      runCopyJob(inputRoot, outputRoot, snapshotName, snapshotDir, verifyChecksum,<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>                 filesUser, filesGroup, filesMode, mappers, bandwidthMB);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span><a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      LOG.info("Finalize the Snapshot Export");<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>      if (!skipTmp) {<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>        // Step 3 - Rename fs2:/.snapshot/.tmp/&lt;snapshot&gt; fs2:/.snapshot/&lt;snapshot&gt;<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        if (!outputFs.rename(snapshotTmpDir, outputSnapshotDir)) {<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>          throw new ExportSnapshotException("Unable to rename snapshot directory from=" +<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>            snapshotTmpDir + " to=" + outputSnapshotDir);<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        }<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>      }<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span><a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>      // Step 4 - Verify snapshot integrity<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>      if (verifyTarget) {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>        LOG.info("Verify snapshot integrity");<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>        verifySnapshot(destConf, outputFs, outputRoot, outputSnapshotDir);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>      }<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span><a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>      LOG.info("Export Completed: " + targetName);<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>      return 0;<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>    } catch (Exception e) {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>      LOG.error("Snapshot export failed", e);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>      if (!skipTmp) {<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>        outputFs.delete(snapshotTmpDir, true);<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      }<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>      outputFs.delete(outputSnapshotDir, true);<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      return 1;<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    } finally {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      IOUtils.closeStream(inputFs);<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>      IOUtils.closeStream(outputFs);<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>    }<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>  @Override<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  protected void printUsage() {<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    super.printUsage();<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    System.out.println("\n"<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>        + "Examples:\n"<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        + "  hbase snapshot export \\\n"<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        + "    --snapshot MySnapshot --copy-to hdfs://srv2:8082/hbase \\\n"<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>        + "    --chuser MyUser --chgroup MyGroup --chmod 700 --mappers 16\n"<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        + "\n"<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>        + "  hbase snapshot export \\\n"<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>        + "    --snapshot MySnapshot --copy-from hdfs://srv2:8082/hbase \\\n"<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        + "    --copy-to hdfs://srv1:50070/hbase");<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>  @Override protected void addOptions() {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    addRequiredOption(Options.SNAPSHOT);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    addOption(Options.COPY_TO);<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>    addOption(Options.COPY_FROM);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    addOption(Options.TARGET_NAME);<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    addOption(Options.NO_CHECKSUM_VERIFY);<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>    addOption(Options.NO_TARGET_VERIFY);<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>    addOption(Options.OVERWRITE);<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    addOption(Options.CHUSER);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    addOption(Options.CHGROUP);<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    addOption(Options.CHMOD);<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    addOption(Options.MAPPERS);<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>    addOption(Options.BANDWIDTH);<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  }<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span><a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>  public static void main(String[] args) {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    new ExportSnapshot().doStaticMain(args);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>  }<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>}<a name="line.1111"></a>
+<span class="sourceLineNo">950</span>    Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshotName, inputRoot);<a name="line.950"></a>
+<span class="sourceLineNo">951</span>    Path snapshotTmpDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(targetName, outputRoot);<a name="line.951"></a>
+<span class="sourceLineNo">952</span>    Path outputSnapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(targetName, outputRoot);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>    Path initialOutputSnapshotDir = skipTmp ? outputSnapshotDir : snapshotTmpDir;<a name="line.953"></a>
+<span class="sourceLineNo">954</span><a name="line.954"></a>
+<span class="sourceLineNo">955</span>    // Find the necessary directory which need to change owner and group<a name="line.955"></a>
+<span class="sourceLineNo">956</span>    Path needSetOwnerDir = SnapshotDescriptionUtils.getSnapshotRootDir(outputRoot);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    if (outputFs.exists(needSetOwnerDir)) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>      if (skipTmp) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        needSetOwnerDir = outputSnapshotDir;<a name="line.959"></a>
+<span class="sourceLineNo">960</span>      } else {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        needSetOwnerDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(outputRoot);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>        if (outputFs.exists(needSetOwnerDir)) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>          needSetOwnerDir = snapshotTmpDir;<a name="line.963"></a>
+<span class="sourceLineNo">964</span>        }<a name="line.964"></a>
+<span class="sourceLineNo">965</span>      }<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    }<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>    // Check if the snapshot already exists<a name="line.968"></a>
+<span class="sourceLineNo">969</span>    if (outputFs.exists(outputSnapshotDir)) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>      if (overwrite) {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>        if (!outputFs.delete(outputSnapshotDir, true)) {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>          System.err.println("Unable to remove existing snapshot directory: " + outputSnapshotDir);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>          return 1;<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>      } else {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>        System.err.println("The snapshot '" + targetName +<a name="line.976"></a>
+<span class="sourceLineNo">977</span>          "' already exists in the destination: " + outputSnapshotDir);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        return 1;<a name="line.978"></a>
+<span class="sourceLineNo">979</span>      }<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    if (!skipTmp) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>      // Check if the snapshot already in-progress<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      if (outputFs.exists(snapshotTmpDir)) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>        if (overwrite) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>          if (!outputFs.delete(snapshotTmpDir, true)) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>            System.err.println("Unable to remove existing snapshot tmp directory: "+snapshotTmpDir);<a name="line.987"></a>
+<span class="sourceLineNo">988</span>            return 1;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>          }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>        } else {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>          System.err.println("A snapshot with the same name '"+ targetName +"' may be in-progress");<a name="line.991"></a>
+<span class="sourceLineNo">992</span>          System.err.println("Please check "+snapshotTmpDir+". If the snapshot has completed, ");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>          System.err.println("consider removing "+snapshotTmpDir+" by using the -overwrite option");<a name="line.993"></a>
+<span class="sourceLineNo">994</span>          return 1;<a name="line.994"></a>
+<span class="sourceLineNo">995</span>        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>      }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    }<a name="line.997"></a>
+<span class="sourceLineNo">998</span><a name="line.998"></a>
+<span class="sourceLineNo">999</span>    // Step 1 - Copy fs1:/.snapshot/&lt;snapshot&gt; to  fs2:/.snapshot/.tmp/&lt;snapshot&gt;<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    // The snapshot references must be copied before the hfiles otherwise the cleaner<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    // will remove them because they are unreferenced.<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>    try {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>      LOG.info("Copy Snapshot Manifest");<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      FileUtil.copy(inputFs, snapshotDir, outputFs, initialOutputSnapshotDir, false, false, conf);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    } catch (IOException e) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      throw new ExportSnapshotException("Failed to copy the snapshot directory: from=" +<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        snapshotDir + " to=" + initialOutputSnapshotDir, e);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    } finally {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      if (filesUser != null || filesGroup != null) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>        LOG.warn((filesUser == null ? "" : "Change the owner of " + needSetOwnerDir + " to "<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>            + filesUser)<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>            + (filesGroup == null ? "" : ", Change the group of " + needSetOwnerDir + " to "<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>            + filesGroup));<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        setOwner(outputFs, needSetOwnerDir, filesUser, filesGroup, true);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>      }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      if (filesMode &gt; 0) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>        LOG.warn("Change the permission of " + needSetOwnerDir + " to " + filesMode);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        setPermission(outputFs, needSetOwnerDir, (short)filesMode, true);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>      }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    }<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span><a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>    // Write a new .snapshotinfo if the target name is different from the source name<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>    if (!targetName.equals(snapshotName)) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>      SnapshotDescription snapshotDesc =<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>        SnapshotDescriptionUtils.readSnapshotInfo(inputFs, snapshotDir)<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>          .toBuilder()<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>          .setName(targetName)<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>          .build();<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      SnapshotDescriptionUtils.writeSnapshotInfo(snapshotDesc, initialOutputSnapshotDir, outputFs);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      if (filesUser != null || filesGroup != null) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        outputFs.setOwner(new Path(initialOutputSnapshotDir,<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), filesUser, filesGroup);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>      }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>      if (filesMode &gt; 0) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        outputFs.setPermission(new Path(initialOutputSnapshotDir,<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), new FsPermission((short)filesMode));<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>      }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>    }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>    // Step 2 - Start MR Job to copy files<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>    // The snapshot references must be copied before the files otherwise the files gets removed<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>    // by the HFileArchiver, since they have no references.<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>    try {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>      runCopyJob(inputRoot, outputRoot, snapshotName, snapshotDir, verifyChecksum,<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                 filesUser, filesGroup, filesMode, mappers, bandwidthMB);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span><a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>      LOG.info("Finalize the Snapshot Export");<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      if (!skipTmp) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        // Step 3 - Rename fs2:/.snapshot/.tmp/&lt;snapshot&gt; fs2:/.snapshot/&lt;snapshot&gt;<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        if (!outputFs.rename(snapshotTmpDir, outputSnapshotDir)) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>          throw new ExportSnapshotException("Unable to rename snapshot directory from=" +<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>            snapshotTmpDir + " to=" + outputSnapshotDir);<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span><a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>      // Step 4 - Verify snapshot integrity<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      if (verifyTarget) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        LOG.info("Verify snapshot integrity");<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        verifySnapshot(destConf, outputFs, outputRoot, outputSnapshotDir);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>      }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      LOG.info("Export Completed: " + targetName);<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      return 0;<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>    } catch (Exception e) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>      LOG.error("Snapshot export failed", e);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      if (!skipTmp) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        outputFs.delete(snapshotTmpDir, true);<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      }<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      outputFs.delete(outputSnapshotDir, true);<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      return 1;<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>    } finally {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      IOUtils.closeStream(inputFs);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>      IOUtils.closeStream(outputFs);<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    }<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  @Override<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>  protected void printUsage() {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    super.printUsage();<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    System.out.println("\n"<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        + "Examples:\n"<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>        + "  hbase snapshot export \\\n"<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>        + "    --snapshot MySnapshot --copy-to hdfs://srv2:8082/hbase \\\n"<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        + "    --chuser MyUser --chgroup MyGroup --chmod 700 --mappers 16\n"<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>        + "\n"<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>        + "  hbase snapshot export \\\n"<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>        + "    --snapshot MySnapshot --copy-from hdfs://srv2:8082/hbase \\\n"<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        + "    --copy-to hdfs://srv1:50070/hbase");<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>  @Override protected void addOptions() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    addRequiredOption(Options.SNAPSHOT);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    addOption(Options.COPY_TO);<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>    addOption(Options.COPY_FROM);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>    addOption(Options.TARGET_NAME);<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>    addOption(Options.NO_CHECKSUM_VERIFY);<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>    addOption(Options.NO_TARGET_VERIFY);<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>    addOption(Options.OVERWRITE);<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>    addOption(Options.CHUSER);<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>    addOption(Options.CHGROUP);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>    addOption(Options.CHMOD);<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>    addOption(Options.MAPPERS);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    addOption(Options.BANDWIDTH);<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>  }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span><a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>  public static void main(String[] args) {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    new ExportSnapshot().doStaticMain(args);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  }<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>}<a name="line.1109"></a>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/96bf4e08/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportMapper.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportMapper.html b/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportMapper.html
index a73c866..dd2d739 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportMapper.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/snapshot/ExportSnapshot.ExportMapper.html
@@ -834,289 +834,287 @@
 <span class="sourceLineNo">826</span><a name="line.826"></a>
 <span class="sourceLineNo">827</span>    // Run the MR Job<a name="line.827"></a>
 <span class="sourceLineNo">828</span>    if (!job.waitForCompletion(true)) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>      // TODO: Replace the fixed string with job.getStatus().getFailureInfo()<a name="line.829"></a>
-<span class="sourceLineNo">830</span>      // when it will be available on all the supported versions.<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      throw new ExportSnapshotException("Copy Files Map-Reduce Job failed");<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    }<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  }<a name="line.833"></a>
-<span class="sourceLineNo">834</span><a name="line.834"></a>
-<span class="sourceLineNo">835</span>  private void verifySnapshot(final Configuration baseConf,<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      final FileSystem fs, final Path rootDir, final Path snapshotDir) throws IOException {<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    // Update the conf with the current root dir, since may be a different cluster<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    Configuration conf = new Configuration(baseConf);<a name="line.838"></a>
-<span class="sourceLineNo">839</span>    FSUtils.setRootDir(conf, rootDir);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    FSUtils.setFsDefault(conf, FSUtils.getRootDir(conf));<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    SnapshotDescription snapshotDesc = SnapshotDescriptionUtils.readSnapshotInfo(fs, snapshotDir);<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    SnapshotReferenceUtil.verifySnapshot(conf, fs, snapshotDir, snapshotDesc);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>  }<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>   * Set path ownership.<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   */<a name="line.847"></a>
-<span class="sourceLineNo">848</span>  private void setOwner(final FileSystem fs, final Path path, final String user,<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      final String group, final boolean recursive) throws IOException {<a name="line.849"></a>
-<span class="sourceLineNo">850</span>    if (user != null || group != null) {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.851"></a>
-<span class="sourceLineNo">852</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          setOwner(fs, child.getPath(), user, group, recursive);<a name="line.853"></a>
-<span class="sourceLineNo">854</span>        }<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      }<a name="line.855"></a>
-<span class="sourceLineNo">856</span>      fs.setOwner(path, user, group);<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    }<a name="line.857"></a>
-<span class="sourceLineNo">858</span>  }<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>  /**<a name="line.860"></a>
-<span class="sourceLineNo">861</span>   * Set path permission.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   */<a name="line.862"></a>
-<span class="sourceLineNo">863</span>  private void setPermission(final FileSystem fs, final Path path, final short filesMode,<a name="line.863"></a>
-<span class="sourceLineNo">864</span>      final boolean recursive) throws IOException {<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (filesMode &gt; 0) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      FsPermission perm = new FsPermission(filesMode);<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>          setPermission(fs, child.getPath(), filesMode, recursive);<a name="line.869"></a>
-<span class="sourceLineNo">870</span>        }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      fs.setPermission(path, perm);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>    }<a name="line.873"></a>
-<span class="sourceLineNo">874</span>  }<a name="line.874"></a>
-<span class="sourceLineNo">875</span><a name="line.875"></a>
-<span class="sourceLineNo">876</span>  private boolean verifyTarget = true;<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  private boolean verifyChecksum = true;<a name="line.877"></a>
-<span class="sourceLineNo">878</span>  private String snapshotName = null;<a name="line.878"></a>
-<span class="sourceLineNo">879</span>  private String targetName = null;<a name="line.879"></a>
-<span class="sourceLineNo">880</span>  private boolean overwrite = false;<a name="line.880"></a>
-<span class="sourceLineNo">881</span>  private String filesGroup = null;<a name="line.881"></a>
-<span class="sourceLineNo">882</span>  private String filesUser = null;<a name="line.882"></a>
-<span class="sourceLineNo">883</span>  private Path outputRoot = null;<a name="line.883"></a>
-<span class="sourceLineNo">884</span>  private Path inputRoot = null;<a name="line.884"></a>
-<span class="sourceLineNo">885</span>  private int bandwidthMB = Integer.MAX_VALUE;<a name="line.885"></a>
-<span class="sourceLineNo">886</span>  private int filesMode = 0;<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  private int mappers = 0;<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  @Override<a name="line.889"></a>
-<span class="sourceLineNo">890</span>  protected void processOptions(CommandLine cmd) {<a name="line.890"></a>
-<span class="sourceLineNo">891</span>    snapshotName = cmd.getOptionValue(Options.SNAPSHOT.getLongOpt(), snapshotName);<a name="line.891"></a>
-<span class="sourceLineNo">892</span>    targetName = cmd.getOptionValue(Options.TARGET_NAME.getLongOpt(), targetName);<a name="line.892"></a>
-<span class="sourceLineNo">893</span>    if (cmd.hasOption(Options.COPY_TO.getLongOpt())) {<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      outputRoot = new Path(cmd.getOptionValue(Options.COPY_TO.getLongOpt()));<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    if (cmd.hasOption(Options.COPY_FROM.getLongOpt())) {<a name="line.896"></a>
-<span class="sourceLineNo">897</span>      inputRoot = new Path(cmd.getOptionValue(Options.COPY_FROM.getLongOpt()));<a name="line.897"></a>
-<span class="sourceLineNo">898</span>    }<a name="line.898"></a>
-<span class="sourceLineNo">899</span>    mappers = getOptionAsInt(cmd, Options.MAPPERS.getLongOpt(), mappers);<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    filesUser = cmd.getOptionValue(Options.CHUSER.getLongOpt(), filesUser);<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    filesGroup = cmd.getOptionValue(Options.CHGROUP.getLongOpt(), filesGroup);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>    filesMode = getOptionAsInt(cmd, Options.CHMOD.getLongOpt(), filesMode);<a name="line.902"></a>
-<span class="sourceLineNo">903</span>    bandwidthMB = getOptionAsInt(cmd, Options.BANDWIDTH.getLongOpt(), bandwidthMB);<a name="line.903"></a>
-<span class="sourceLineNo">904</span>    overwrite = cmd.hasOption(Options.OVERWRITE.getLongOpt());<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    // And verifyChecksum and verifyTarget with values read from old args in processOldArgs(...).<a name="line.905"></a>
-<span class="sourceLineNo">906</span>    verifyChecksum = !cmd.hasOption(Options.NO_CHECKSUM_VERIFY.getLongOpt());<a name="line.906"></a>
-<span class="sourceLineNo">907</span>    verifyTarget = !cmd.hasOption(Options.NO_TARGET_VERIFY.getLongOpt());<a name="line.907"></a>
-<span class="sourceLineNo">908</span>  }<a name="line.908"></a>
-<span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>  /**<a name="line.910"></a>
-<span class="sourceLineNo">911</span>   * Execute the export snapshot by copying the snapshot metadata, hfiles and wals.<a name="line.911"></a>
-<span class="sourceLineNo">912</span>   * @return 0 on success, and != 0 upon failure.<a name="line.912"></a>
-<span class="sourceLineNo">913</span>   */<a name="line.913"></a>
-<span class="sourceLineNo">914</span>  @Override<a name="line.914"></a>
-<span class="sourceLineNo">915</span>  public int doWork() throws IOException {<a name="line.915"></a>
-<span class="sourceLineNo">916</span>    Configuration conf = getConf();<a name="line.916"></a>
-<span class="sourceLineNo">917</span><a name="line.917"></a>
-<span class="sourceLineNo">918</span>    // Check user options<a name="line.918"></a>
-<span class="sourceLineNo">919</span>    if (snapshotName == null) {<a name="line.919"></a>
-<span class="sourceLineNo">920</span>      System.err.println("Snapshot name not provided.");<a name="line.920"></a>
-<span class="sourceLineNo">921</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      return 0;<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    }<a name="line.923"></a>
-<span class="sourceLineNo">924</span><a name="line.924"></a>
-<span class="sourceLineNo">925</span>    if (outputRoot == null) {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>      System.err.println("Destination file-system (--" + Options.COPY_TO.getLongOpt()<a name="line.926"></a>
-<span class="sourceLineNo">927</span>              + ") not provided.");<a name="line.927"></a>
-<span class="sourceLineNo">928</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      return 0;<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    }<a name="line.930"></a>
-<span class="sourceLineNo">931</span><a name="line.931"></a>
-<span class="sourceLineNo">932</span>    if (targetName == null) {<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      targetName = snapshotName;<a name="line.933"></a>
-<span class="sourceLineNo">934</span>    }<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    if (inputRoot == null) {<a name="line.935"></a>
-<span class="sourceLineNo">936</span>      inputRoot = FSUtils.getRootDir(conf);<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    } else {<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      FSUtils.setRootDir(conf, inputRoot);<a name="line.938"></a>
-<span class="sourceLineNo">939</span>    }<a name="line.939"></a>
-<span class="sourceLineNo">940</span><a name="line.940"></a>
-<span class="sourceLineNo">941</span>    Configuration srcConf = HBaseConfiguration.createClusterConf(conf, null, CONF_SOURCE_PREFIX);<a name="line.941"></a>
-<span class="sourceLineNo">942</span>    srcConf.setBoolean("fs." + inputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    FileSystem inputFs = FileSystem.get(inputRoot.toUri(), srcConf);<a name="line.943"></a>
-<span class="sourceLineNo">944</span>    LOG.debug("inputFs=" + inputFs.getUri().toString() + " inputRoot=" + inputRoot);<a name="line.944"></a>
-<span class="sourceLineNo">945</span>    Configuration destConf = HBaseConfiguration.createClusterConf(conf, null, CONF_DEST_PREFIX);<a name="line.945"></a>
-<span class="sourceLineNo">946</span>    destConf.setBoolean("fs." + outputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.946"></a>
-<span class="sourceLineNo">947</span>    FileSystem outputFs = FileSystem.get(outputRoot.toUri(), destConf);<a name="line.947"></a>
-<span class="sourceLineNo">948</span>    LOG.debug("outputFs=" + outputFs.getUri().toString() + " outputRoot=" + outputRoot.toString());<a name="line.948"></a>
+<span class="sourceLineNo">829</span>      throw new ExportSnapshotException(job.getStatus().getFailureInfo());<a name="line.829"></a>
+<span class="sourceLineNo">830</span>    }<a name="line.830"></a>
+<span class="sourceLineNo">831</span>  }<a name="line.831"></a>
+<span class="sourceLineNo">832</span><a name="line.832"></a>
+<span class="sourceLineNo">833</span>  private void verifySnapshot(final Configuration baseConf,<a name="line.833"></a>
+<span class="sourceLineNo">834</span>      final FileSystem fs, final Path rootDir, final Path snapshotDir) throws IOException {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    // Update the conf with the current root dir, since may be a different cluster<a name="line.835"></a>
+<span class="sourceLineNo">836</span>    Configuration conf = new Configuration(baseConf);<a name="line.836"></a>
+<span class="sourceLineNo">837</span>    FSUtils.setRootDir(conf, rootDir);<a name="line.837"></a>
+<span class="sourceLineNo">838</span>    FSUtils.setFsDefault(conf, FSUtils.getRootDir(conf));<a name="line.838"></a>
+<span class="sourceLineNo">839</span>    SnapshotDescription snapshotDesc = SnapshotDescriptionUtils.readSnapshotInfo(fs, snapshotDir);<a name="line.839"></a>
+<span class="sourceLineNo">840</span>    SnapshotReferenceUtil.verifySnapshot(conf, fs, snapshotDir, snapshotDesc);<a name="line.840"></a>
+<span class="sourceLineNo">841</span>  }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>  /**<a name="line.843"></a>
+<span class="sourceLineNo">844</span>   * Set path ownership.<a name="line.844"></a>
+<span class="sourceLineNo">845</span>   */<a name="line.845"></a>
+<span class="sourceLineNo">846</span>  private void setOwner(final FileSystem fs, final Path path, final String user,<a name="line.846"></a>
+<span class="sourceLineNo">847</span>      final String group, final boolean recursive) throws IOException {<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    if (user != null || group != null) {<a name="line.848"></a>
+<span class="sourceLineNo">849</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>          setOwner(fs, child.getPath(), user, group, recursive);<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        }<a name="line.852"></a>
+<span class="sourceLineNo">853</span>      }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>      fs.setOwner(path, user, group);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>    }<a name="line.855"></a>
+<span class="sourceLineNo">856</span>  }<a name="line.856"></a>
+<span class="sourceLineNo">857</span><a name="line.857"></a>
+<span class="sourceLineNo">858</span>  /**<a name="line.858"></a>
+<span class="sourceLineNo">859</span>   * Set path permission.<a name="line.859"></a>
+<span class="sourceLineNo">860</span>   */<a name="line.860"></a>
+<span class="sourceLineNo">861</span>  private void setPermission(final FileSystem fs, final Path path, final short filesMode,<a name="line.861"></a>
+<span class="sourceLineNo">862</span>      final boolean recursive) throws IOException {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>    if (filesMode &gt; 0) {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>      FsPermission perm = new FsPermission(filesMode);<a name="line.864"></a>
+<span class="sourceLineNo">865</span>      if (recursive &amp;&amp; fs.isDirectory(path)) {<a name="line.865"></a>
+<span class="sourceLineNo">866</span>        for (FileStatus child : fs.listStatus(path)) {<a name="line.866"></a>
+<span class="sourceLineNo">867</span>          setPermission(fs, child.getPath(), filesMode, recursive);<a name="line.867"></a>
+<span class="sourceLineNo">868</span>        }<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>      fs.setPermission(path, perm);<a name="line.870"></a>
+<span class="sourceLineNo">871</span>    }<a name="line.871"></a>
+<span class="sourceLineNo">872</span>  }<a name="line.872"></a>
+<span class="sourceLineNo">873</span><a name="line.873"></a>
+<span class="sourceLineNo">874</span>  private boolean verifyTarget = true;<a name="line.874"></a>
+<span class="sourceLineNo">875</span>  private boolean verifyChecksum = true;<a name="line.875"></a>
+<span class="sourceLineNo">876</span>  private String snapshotName = null;<a name="line.876"></a>
+<span class="sourceLineNo">877</span>  private String targetName = null;<a name="line.877"></a>
+<span class="sourceLineNo">878</span>  private boolean overwrite = false;<a name="line.878"></a>
+<span class="sourceLineNo">879</span>  private String filesGroup = null;<a name="line.879"></a>
+<span class="sourceLineNo">880</span>  private String filesUser = null;<a name="line.880"></a>
+<span class="sourceLineNo">881</span>  private Path outputRoot = null;<a name="line.881"></a>
+<span class="sourceLineNo">882</span>  private Path inputRoot = null;<a name="line.882"></a>
+<span class="sourceLineNo">883</span>  private int bandwidthMB = Integer.MAX_VALUE;<a name="line.883"></a>
+<span class="sourceLineNo">884</span>  private int filesMode = 0;<a name="line.884"></a>
+<span class="sourceLineNo">885</span>  private int mappers = 0;<a name="line.885"></a>
+<span class="sourceLineNo">886</span><a name="line.886"></a>
+<span class="sourceLineNo">887</span>  @Override<a name="line.887"></a>
+<span class="sourceLineNo">888</span>  protected void processOptions(CommandLine cmd) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    snapshotName = cmd.getOptionValue(Options.SNAPSHOT.getLongOpt(), snapshotName);<a name="line.889"></a>
+<span class="sourceLineNo">890</span>    targetName = cmd.getOptionValue(Options.TARGET_NAME.getLongOpt(), targetName);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>    if (cmd.hasOption(Options.COPY_TO.getLongOpt())) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>      outputRoot = new Path(cmd.getOptionValue(Options.COPY_TO.getLongOpt()));<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    }<a name="line.893"></a>
+<span class="sourceLineNo">894</span>    if (cmd.hasOption(Options.COPY_FROM.getLongOpt())) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>      inputRoot = new Path(cmd.getOptionValue(Options.COPY_FROM.getLongOpt()));<a name="line.895"></a>
+<span class="sourceLineNo">896</span>    }<a name="line.896"></a>
+<span class="sourceLineNo">897</span>    mappers = getOptionAsInt(cmd, Options.MAPPERS.getLongOpt(), mappers);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    filesUser = cmd.getOptionValue(Options.CHUSER.getLongOpt(), filesUser);<a name="line.898"></a>
+<span class="sourceLineNo">899</span>    filesGroup = cmd.getOptionValue(Options.CHGROUP.getLongOpt(), filesGroup);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>    filesMode = getOptionAsInt(cmd, Options.CHMOD.getLongOpt(), filesMode);<a name="line.900"></a>
+<span class="sourceLineNo">901</span>    bandwidthMB = getOptionAsInt(cmd, Options.BANDWIDTH.getLongOpt(), bandwidthMB);<a name="line.901"></a>
+<span class="sourceLineNo">902</span>    overwrite = cmd.hasOption(Options.OVERWRITE.getLongOpt());<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    // And verifyChecksum and verifyTarget with values read from old args in processOldArgs(...).<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    verifyChecksum = !cmd.hasOption(Options.NO_CHECKSUM_VERIFY.getLongOpt());<a name="line.904"></a>
+<span class="sourceLineNo">905</span>    verifyTarget = !cmd.hasOption(Options.NO_TARGET_VERIFY.getLongOpt());<a name="line.905"></a>
+<span class="sourceLineNo">906</span>  }<a name="line.906"></a>
+<span class="sourceLineNo">907</span><a name="line.907"></a>
+<span class="sourceLineNo">908</span>  /**<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   * Execute the export snapshot by copying the snapshot metadata, hfiles and wals.<a name="line.909"></a>
+<span class="sourceLineNo">910</span>   * @return 0 on success, and != 0 upon failure.<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
+<span class="sourceLineNo">912</span>  @Override<a name="line.912"></a>
+<span class="sourceLineNo">913</span>  public int doWork() throws IOException {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    Configuration conf = getConf();<a name="line.914"></a>
+<span class="sourceLineNo">915</span><a name="line.915"></a>
+<span class="sourceLineNo">916</span>    // Check user options<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    if (snapshotName == null) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>      System.err.println("Snapshot name not provided.");<a name="line.918"></a>
+<span class="sourceLineNo">919</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.919"></a>
+<span class="sourceLineNo">920</span>      return 0;<a name="line.920"></a>
+<span class="sourceLineNo">921</span>    }<a name="line.921"></a>
+<span class="sourceLineNo">922</span><a name="line.922"></a>
+<span class="sourceLineNo">923</span>    if (outputRoot == null) {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>      System.err.println("Destination file-system (--" + Options.COPY_TO.getLongOpt()<a name="line.924"></a>
+<span class="sourceLineNo">925</span>              + ") not provided.");<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      LOG.error("Use -h or --help for usage instructions.");<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      return 0;<a name="line.927"></a>
+<span class="sourceLineNo">928</span>    }<a name="line.928"></a>
+<span class="sourceLineNo">929</span><a name="line.929"></a>
+<span class="sourceLineNo">930</span>    if (targetName == null) {<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      targetName = snapshotName;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    if (inputRoot == null) {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      inputRoot = FSUtils.getRootDir(conf);<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    } else {<a name="line.935"></a>
+<span class="sourceLineNo">936</span>      FSUtils.setRootDir(conf, inputRoot);<a name="line.936"></a>
+<span class="sourceLineNo">937</span>    }<a name="line.937"></a>
+<span class="sourceLineNo">938</span><a name="line.938"></a>
+<span class="sourceLineNo">939</span>    Configuration srcConf = HBaseConfiguration.createClusterConf(conf, null, CONF_SOURCE_PREFIX);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    srcConf.setBoolean("fs." + inputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    FileSystem inputFs = FileSystem.get(inputRoot.toUri(), srcConf);<a name="line.941"></a>
+<span class="sourceLineNo">942</span>    LOG.debug("inputFs=" + inputFs.getUri().toString() + " inputRoot=" + inputRoot);<a name="line.942"></a>
+<span class="sourceLineNo">943</span>    Configuration destConf = HBaseConfiguration.createClusterConf(conf, null, CONF_DEST_PREFIX);<a name="line.943"></a>
+<span class="sourceLineNo">944</span>    destConf.setBoolean("fs." + outputRoot.toUri().getScheme() + ".impl.disable.cache", true);<a name="line.944"></a>
+<span class="sourceLineNo">945</span>    FileSystem outputFs = FileSystem.get(outputRoot.toUri(), destConf);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    LOG.debug("outputFs=" + outputFs.getUri().toString() + " outputRoot=" + outputRoot.toString());<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>    boolean skipTmp = conf.getBoolean(CONF_SKIP_TMP, false);<a name="line.948"></a>
 <span class="sourceLineNo">949</span><a name="line.949"></a>
-<span class="sourceLineNo">950</span>    boolean skipTmp = conf.getBoolean(CONF_SKIP_TMP, false);<a name="line.950"></a>
-<span class="sourceLineNo">951</span><a name="line.951"></a>
-<span class="sourceLineNo">952</span>    Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshotName, inputRoot);<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    Path snapshotTmpDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(targetName, outputRoot);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    Path outputSnapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(targetName, outputRoot);<a name="line.954"></a>
-<span class="sourceLineNo">955</span>    Path initialOutputSnapshotDir = skipTmp ? outputSnapshotDir : snapshotTmpDir;<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>    // Find the necessary directory which need to change owner and group<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    Path needSetOwnerDir = SnapshotDescriptionUtils.getSnapshotRootDir(outputRoot);<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    if (outputFs.exists(needSetOwnerDir)) {<a name="line.959"></a>
-<span class="sourceLineNo">960</span>      if (skipTmp) {<a name="line.960"></a>
-<span class="sourceLineNo">961</span>        needSetOwnerDir = outputSnapshotDir;<a name="line.961"></a>
-<span class="sourceLineNo">962</span>      } else {<a name="line.962"></a>
-<span class="sourceLineNo">963</span>        needSetOwnerDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(outputRoot);<a name="line.963"></a>
-<span class="sourceLineNo">964</span>        if (outputFs.exists(needSetOwnerDir)) {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>          needSetOwnerDir = snapshotTmpDir;<a name="line.965"></a>
-<span class="sourceLineNo">966</span>        }<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
-<span class="sourceLineNo">969</span><a name="line.969"></a>
-<span class="sourceLineNo">970</span>    // Check if the snapshot already exists<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    if (outputFs.exists(outputSnapshotDir)) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      if (overwrite) {<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        if (!outputFs.delete(outputSnapshotDir, true)) {<a name="line.973"></a>
-<span class="sourceLineNo">974</span>          System.err.println("Unable to remove existing snapshot directory: " + outputSnapshotDir);<a name="line.974"></a>
-<span class="sourceLineNo">975</span>          return 1;<a name="line.975"></a>
-<span class="sourceLineNo">976</span>        }<a name="line.976"></a>
-<span class="sourceLineNo">977</span>      } else {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>        System.err.println("The snapshot '" + targetName +<a name="line.978"></a>
-<span class="sourceLineNo">979</span>          "' already exists in the destination: " + outputSnapshotDir);<a name="line.979"></a>
-<span class="sourceLineNo">980</span>        return 1;<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      }<a name="line.981"></a>
-<span class="sourceLineNo">982</span>    }<a name="line.982"></a>
-<span class="sourceLineNo">983</span><a name="line.983"></a>
-<span class="sourceLineNo">984</span>    if (!skipTmp) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>      // Check if the snapshot already in-progress<a name="line.985"></a>
-<span class="sourceLineNo">986</span>      if (outputFs.exists(snapshotTmpDir)) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>        if (overwrite) {<a name="line.987"></a>
-<span class="sourceLineNo">988</span>          if (!outputFs.delete(snapshotTmpDir, true)) {<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            System.err.println("Unable to remove existing snapshot tmp directory: "+snapshotTmpDir);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>            return 1;<a name="line.990"></a>
-<span class="sourceLineNo">991</span>          }<a name="line.991"></a>
-<span class="sourceLineNo">992</span>        } else {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>          System.err.println("A snapshot with the same name '"+ targetName +"' may be in-progress");<a name="line.993"></a>
-<span class="sourceLineNo">994</span>          System.err.println("Please check "+snapshotTmpDir+". If the snapshot has completed, ");<a name="line.994"></a>
-<span class="sourceLineNo">995</span>          System.err.println("consider removing "+snapshotTmpDir+" by using the -overwrite option");<a name="line.995"></a>
-<span class="sourceLineNo">996</span>          return 1;<a name="line.996"></a>
-<span class="sourceLineNo">997</span>        }<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      }<a name="line.998"></a>
-<span class="sourceLineNo">999</span>    }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span><a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    // Step 1 - Copy fs1:/.snapshot/&lt;snapshot&gt; to  fs2:/.snapshot/.tmp/&lt;snapshot&gt;<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // The snapshot references must be copied before the hfiles otherwise the cleaner<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    // will remove them because they are unreferenced.<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    try {<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      LOG.info("Copy Snapshot Manifest");<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      FileUtil.copy(inputFs, snapshotDir, outputFs, initialOutputSnapshotDir, false, false, conf);<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    } catch (IOException e) {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      throw new ExportSnapshotException("Failed to copy the snapshot directory: from=" +<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>        snapshotDir + " to=" + initialOutputSnapshotDir, e);<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    } finally {<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      if (filesUser != null || filesGroup != null) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>        LOG.warn((filesUser == null ? "" : "Change the owner of " + needSetOwnerDir + " to "<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>            + filesUser)<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>            + (filesGroup == null ? "" : ", Change the group of " + needSetOwnerDir + " to "<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>            + filesGroup));<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>        setOwner(outputFs, needSetOwnerDir, filesUser, filesGroup, true);<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>      }<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      if (filesMode &gt; 0) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>        LOG.warn("Change the permission of " + needSetOwnerDir + " to " + filesMode);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>        setPermission(outputFs, needSetOwnerDir, (short)filesMode, true);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>      }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    }<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span><a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    // Write a new .snapshotinfo if the target name is different from the source name<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    if (!targetName.equals(snapshotName)) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      SnapshotDescription snapshotDesc =<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>        SnapshotDescriptionUtils.readSnapshotInfo(inputFs, snapshotDir)<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>          .toBuilder()<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>          .setName(targetName)<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>          .build();<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>      SnapshotDescriptionUtils.writeSnapshotInfo(snapshotDesc, initialOutputSnapshotDir, outputFs);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>      if (filesUser != null || filesGroup != null) {<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>        outputFs.setOwner(new Path(initialOutputSnapshotDir,<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), filesUser, filesGroup);<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>      }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>      if (filesMode &gt; 0) {<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>        outputFs.setPermission(new Path(initialOutputSnapshotDir,<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), new FsPermission((short)filesMode));<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>      }<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>    // Step 2 - Start MR Job to copy files<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    // The snapshot references must be copied before the files otherwise the files gets removed<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>    // by the HFileArchiver, since they have no references.<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>    try {<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>      runCopyJob(inputRoot, outputRoot, snapshotName, snapshotDir, verifyChecksum,<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>                 filesUser, filesGroup, filesMode, mappers, bandwidthMB);<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span><a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>      LOG.info("Finalize the Snapshot Export");<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>      if (!skipTmp) {<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>        // Step 3 - Rename fs2:/.snapshot/.tmp/&lt;snapshot&gt; fs2:/.snapshot/&lt;snapshot&gt;<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>        if (!outputFs.rename(snapshotTmpDir, outputSnapshotDir)) {<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>          throw new ExportSnapshotException("Unable to rename snapshot directory from=" +<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>            snapshotTmpDir + " to=" + outputSnapshotDir);<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>        }<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>      }<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span><a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>      // Step 4 - Verify snapshot integrity<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>      if (verifyTarget) {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>        LOG.info("Verify snapshot integrity");<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>        verifySnapshot(destConf, outputFs, outputRoot, outputSnapshotDir);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>      }<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span><a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>      LOG.info("Export Completed: " + targetName);<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>      return 0;<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>    } catch (Exception e) {<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>      LOG.error("Snapshot export failed", e);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>      if (!skipTmp) {<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>        outputFs.delete(snapshotTmpDir, true);<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      }<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>      outputFs.delete(outputSnapshotDir, true);<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      return 1;<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>    } finally {<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      IOUtils.closeStream(inputFs);<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>      IOUtils.closeStream(outputFs);<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>    }<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>  @Override<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>  protected void printUsage() {<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>    super.printUsage();<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    System.out.println("\n"<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>        + "Examples:\n"<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        + "  hbase snapshot export \\\n"<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        + "    --snapshot MySnapshot --copy-to hdfs://srv2:8082/hbase \\\n"<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>        + "    --chuser MyUser --chgroup MyGroup --chmod 700 --mappers 16\n"<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        + "\n"<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>        + "  hbase snapshot export \\\n"<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>        + "    --snapshot MySnapshot --copy-from hdfs://srv2:8082/hbase \\\n"<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>        + "    --copy-to hdfs://srv1:50070/hbase");<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>  @Override protected void addOptions() {<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    addRequiredOption(Options.SNAPSHOT);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    addOption(Options.COPY_TO);<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>    addOption(Options.COPY_FROM);<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>    addOption(Options.TARGET_NAME);<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>    addOption(Options.NO_CHECKSUM_VERIFY);<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>    addOption(Options.NO_TARGET_VERIFY);<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>    addOption(Options.OVERWRITE);<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    addOption(Options.CHUSER);<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    addOption(Options.CHGROUP);<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>    addOption(Options.CHMOD);<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    addOption(Options.MAPPERS);<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>    addOption(Options.BANDWIDTH);<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>  }<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span><a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>  public static void main(String[] args) {<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>    new ExportSnapshot().doStaticMain(args);<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>  }<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>}<a name="line.1111"></a>
+<span class="sourceLineNo">950</span>    Path snapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(snapshotName, inputRoot);<a name="line.950"></a>
+<span class="sourceLineNo">951</span>    Path snapshotTmpDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(targetName, outputRoot);<a name="line.951"></a>
+<span class="sourceLineNo">952</span>    Path outputSnapshotDir = SnapshotDescriptionUtils.getCompletedSnapshotDir(targetName, outputRoot);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>    Path initialOutputSnapshotDir = skipTmp ? outputSnapshotDir : snapshotTmpDir;<a name="line.953"></a>
+<span class="sourceLineNo">954</span><a name="line.954"></a>
+<span class="sourceLineNo">955</span>    // Find the necessary directory which need to change owner and group<a name="line.955"></a>
+<span class="sourceLineNo">956</span>    Path needSetOwnerDir = SnapshotDescriptionUtils.getSnapshotRootDir(outputRoot);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    if (outputFs.exists(needSetOwnerDir)) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>      if (skipTmp) {<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        needSetOwnerDir = outputSnapshotDir;<a name="line.959"></a>
+<span class="sourceLineNo">960</span>      } else {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        needSetOwnerDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(outputRoot);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>        if (outputFs.exists(needSetOwnerDir)) {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>          needSetOwnerDir = snapshotTmpDir;<a name="line.963"></a>
+<span class="sourceLineNo">964</span>        }<a name="line.964"></a>
+<span class="sourceLineNo">965</span>      }<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    }<a name="line.966"></a>
+<span class="sourceLineNo">967</span><a name="line.967"></a>
+<span class="sourceLineNo">968</span>    // Check if the snapshot already exists<a name="line.968"></a>
+<span class="sourceLineNo">969</span>    if (outputFs.exists(outputSnapshotDir)) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>      if (overwrite) {<a name="line.970"></a>
+<span class="sourceLineNo">971</span>        if (!outputFs.delete(outputSnapshotDir, true)) {<a name="line.971"></a>
+<span class="sourceLineNo">972</span>          System.err.println("Unable to remove existing snapshot directory: " + outputSnapshotDir);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>          return 1;<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        }<a name="line.974"></a>
+<span class="sourceLineNo">975</span>      } else {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>        System.err.println("The snapshot '" + targetName +<a name="line.976"></a>
+<span class="sourceLineNo">977</span>          "' already exists in the destination: " + outputSnapshotDir);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        return 1;<a name="line.978"></a>
+<span class="sourceLineNo">979</span>      }<a name="line.979"></a>
+<span class="sourceLineNo">980</span>    }<a name="line.980"></a>
+<span class="sourceLineNo">981</span><a name="line.981"></a>
+<span class="sourceLineNo">982</span>    if (!skipTmp) {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>      // Check if the snapshot already in-progress<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      if (outputFs.exists(snapshotTmpDir)) {<a name="line.984"></a>
+<span class="sourceLineNo">985</span>        if (overwrite) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>          if (!outputFs.delete(snapshotTmpDir, true)) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>            System.err.println("Unable to remove existing snapshot tmp directory: "+snapshotTmpDir);<a name="line.987"></a>
+<span class="sourceLineNo">988</span>            return 1;<a name="line.988"></a>
+<span class="sourceLineNo">989</span>          }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>        } else {<a name="line.990"></a>
+<span class="sourceLineNo">991</span>          System.err.println("A snapshot with the same name '"+ targetName +"' may be in-progress");<a name="line.991"></a>
+<span class="sourceLineNo">992</span>          System.err.println("Please check "+snapshotTmpDir+". If the snapshot has completed, ");<a name="line.992"></a>
+<span class="sourceLineNo">993</span>          System.err.println("consider removing "+snapshotTmpDir+" by using the -overwrite option");<a name="line.993"></a>
+<span class="sourceLineNo">994</span>          return 1;<a name="line.994"></a>
+<span class="sourceLineNo">995</span>        }<a name="line.995"></a>
+<span class="sourceLineNo">996</span>      }<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    }<a name="line.997"></a>
+<span class="sourceLineNo">998</span><a name="line.998"></a>
+<span class="sourceLineNo">999</span>    // Step 1 - Copy fs1:/.snapshot/&lt;snapshot&gt; to  fs2:/.snapshot/.tmp/&lt;snapshot&gt;<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    // The snapshot references must be copied before the hfiles otherwise the cleaner<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    // will remove them because they are unreferenced.<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>    try {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>      LOG.info("Copy Snapshot Manifest");<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>      FileUtil.copy(inputFs, snapshotDir, outputFs, initialOutputSnapshotDir, false, false, conf);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    } catch (IOException e) {<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      throw new ExportSnapshotException("Failed to copy the snapshot directory: from=" +<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        snapshotDir + " to=" + initialOutputSnapshotDir, e);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    } finally {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      if (filesUser != null || filesGroup != null) {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>        LOG.warn((filesUser == null ? "" : "Change the owner of " + needSetOwnerDir + " to "<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>            + filesUser)<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>            + (filesGroup == null ? "" : ", Change the group of " + needSetOwnerDir + " to "<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>            + filesGroup));<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        setOwner(outputFs, needSetOwnerDir, filesUser, filesGroup, true);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>      }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      if (filesMode &gt; 0) {<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>        LOG.warn("Change the permission of " + needSetOwnerDir + " to " + filesMode);<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>        setPermission(outputFs, needSetOwnerDir, (short)filesMode, true);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>      }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    }<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span><a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>    // Write a new .snapshotinfo if the target name is different from the source name<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>    if (!targetName.equals(snapshotName)) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>      SnapshotDescription snapshotDesc =<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>        SnapshotDescriptionUtils.readSnapshotInfo(inputFs, snapshotDir)<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>          .toBuilder()<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>          .setName(targetName)<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>          .build();<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      SnapshotDescriptionUtils.writeSnapshotInfo(snapshotDesc, initialOutputSnapshotDir, outputFs);<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>      if (filesUser != null || filesGroup != null) {<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>        outputFs.setOwner(new Path(initialOutputSnapshotDir,<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), filesUser, filesGroup);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>      }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>      if (filesMode &gt; 0) {<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>        outputFs.setPermission(new Path(initialOutputSnapshotDir,<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>          SnapshotDescriptionUtils.SNAPSHOTINFO_FILE), new FsPermission((short)filesMode));<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>      }<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>    }<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>    // Step 2 - Start MR Job to copy files<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>    // The snapshot references must be copied before the files otherwise the files gets removed<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>    // by the HFileArchiver, since they have no references.<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>    try {<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>      runCopyJob(inputRoot, outputRoot, snapshotName, snapshotDir, verifyChecksum,<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>                 filesUser, filesGroup, filesMode, mappers, bandwidthMB);<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span><a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>      LOG.info("Finalize the Snapshot Export");<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>      if (!skipTmp) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        // Step 3 - Rename fs2:/.snapshot/.tmp/&lt;snapshot&gt; fs2:/.snapshot/&lt;snapshot&gt;<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        if (!outputFs.rename(snapshotTmpDir, outputSnapshotDir)) {<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>          throw new ExportSnapshotException("Unable to rename snapshot directory from=" +<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>            snapshotTmpDir + " to=" + outputSnapshotDir);<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>        }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>      }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span><a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>      // Step 4 - Verify snapshot integrity<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span>      if (verifyTarget) {<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>        LOG.info("Verify snapshot integrity");<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>        verifySnapshot(destConf, outputFs, outputRoot, outputSnapshotDir);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>      }<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span><a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>      LOG.info("Export Completed: " + targetName);<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>      return 0;<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>    } catch (Exception e) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>      LOG.error("Snapshot export failed", e);<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>      if (!skipTmp) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>        outputFs.delete(snapshotTmpDir, true);<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      }<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      outputFs.delete(outputSnapshotDir, true);<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      return 1;<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>    } finally {<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      IOUtils.closeStream(inputFs);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>      IOUtils.closeStream(outputFs);<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>    }<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  }<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span><a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>  @Override<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>  protected void printUsage() {<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    super.printUsage();<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>    System.out.println("\n"<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>        + "Examples:\n"<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>        + "  hbase snapshot export \\\n"<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>        + "    --snapshot MySnapshot --copy-to hdfs://srv2:8082/hbase \\\n"<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>        + "    --chuser MyUser --chgroup MyGroup --chmod 700 --mappers 16\n"<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>        + "\n"<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>        + "  hbase snapshot export \\\n"<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>        + "    --snapshot MySnapshot --copy-from hdfs://srv2:8082/hbase \\\n"<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>        + "    --copy-to hdfs://srv1:50070/hbase");<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>  @Override protected void addOptions() {<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>    addRequiredOption(Options.SNAPSHOT);<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    addOption(Options.COPY_TO);<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>    addOption(Options.COPY_FROM);<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>    addOption(Options.TARGET_NAME);<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>    addOption(Options.NO_CHECKSUM_VERIFY);<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>    addOption(Options.NO_TARGET_VERIFY);<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>    addOption(Options.OVERWRITE);<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>    addOption(Options.CHUSER);<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>    addOption(Options.CHGROUP);<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>    addOption(Options.CHMOD);<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span>    addOption(Options.MAPPERS);<a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    addOption(Options.BANDWIDTH);<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>  }<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span><a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>  public static void main(String[] args) {<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>    new ExportSnapshot().doStaticMain(args);<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>  }<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>}<a name="line.1109"></a>