hbase-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mi...@apache.org
Subject [31/34] hbase git commit: Published site at 0bae444b34b6be3a28b5ccc036afb5add23818c6.
Date Tue, 24 Nov 2015 23:19:59 GMT
http://git-wip-us.apache.org/repos/asf/hbase/blob/8acdc839/apidocs/src-html/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html b/apidocs/src-html/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html
index fb1aeb6..93471d1 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html
@@ -51,89 +51,91 @@
 <span class="sourceLineNo">043</span> * caveat, this filter is only useful for special cases<a name="line.43"></a>
 <span class="sourceLineNo">044</span> * like {@link org.apache.hadoop.hbase.mapreduce.RowCounter}.<a name="line.44"></a>
 <span class="sourceLineNo">045</span> * &lt;p&gt;<a name="line.45"></a>
-<span class="sourceLineNo">046</span> */<a name="line.46"></a>
-<span class="sourceLineNo">047</span>@InterfaceAudience.Public<a name="line.47"></a>
-<span class="sourceLineNo">048</span>@InterfaceStability.Stable<a name="line.48"></a>
-<span class="sourceLineNo">049</span>public class FirstKeyValueMatchingQualifiersFilter extends FirstKeyOnlyFilter {<a name="line.49"></a>
-<span class="sourceLineNo">050</span><a name="line.50"></a>
-<span class="sourceLineNo">051</span>  private Set&lt;byte []&gt; qualifiers;<a name="line.51"></a>
+<span class="sourceLineNo">046</span> * @deprecated Deprecated in 2.0. See HBASE-13347<a name="line.46"></a>
+<span class="sourceLineNo">047</span> */<a name="line.47"></a>
+<span class="sourceLineNo">048</span>@InterfaceAudience.Public<a name="line.48"></a>
+<span class="sourceLineNo">049</span>@InterfaceStability.Stable<a name="line.49"></a>
+<span class="sourceLineNo">050</span>@Deprecated<a name="line.50"></a>
+<span class="sourceLineNo">051</span>public class FirstKeyValueMatchingQualifiersFilter extends FirstKeyOnlyFilter {<a name="line.51"></a>
 <span class="sourceLineNo">052</span><a name="line.52"></a>
-<span class="sourceLineNo">053</span>  /**<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   * Constructor which takes a set of columns. As soon as first KeyValue<a name="line.54"></a>
-<span class="sourceLineNo">055</span>   * matching any of these columns is found, filter moves to next row.<a name="line.55"></a>
-<span class="sourceLineNo">056</span>   * <a name="line.56"></a>
-<span class="sourceLineNo">057</span>   * @param qualifiers the set of columns to me matched.<a name="line.57"></a>
-<span class="sourceLineNo">058</span>   */<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  public FirstKeyValueMatchingQualifiersFilter(Set&lt;byte []&gt; qualifiers) {<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    this.qualifiers = qualifiers;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  }<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  @Override<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  public ReturnCode filterKeyValue(Cell v) {<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    if (hasFoundKV()) {<a name="line.65"></a>
-<span class="sourceLineNo">066</span>      return ReturnCode.NEXT_ROW;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    } else if (hasOneMatchingQualifier(v)) {<a name="line.67"></a>
-<span class="sourceLineNo">068</span>      setFoundKV(true);<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    }<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    return ReturnCode.INCLUDE;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  }<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private boolean hasOneMatchingQualifier(Cell v) {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    for (byte[] q : qualifiers) {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      if (CellUtil.matchingQualifier(v, q)) {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>        return true;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      }<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    }<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    return false;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  }<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  /**<a name="line.82"></a>
-<span class="sourceLineNo">083</span>   * @return The filter serialized using pb<a name="line.83"></a>
-<span class="sourceLineNo">084</span>   */<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  public byte [] toByteArray() {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    FilterProtos.FirstKeyValueMatchingQualifiersFilter.Builder builder =<a name="line.86"></a>
-<span class="sourceLineNo">087</span>      FilterProtos.FirstKeyValueMatchingQualifiersFilter.newBuilder();<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    for (byte[] qualifier : qualifiers) {<a name="line.88"></a>
-<span class="sourceLineNo">089</span>      if (qualifier != null) builder.addQualifiers(ByteStringer.wrap(qualifier));<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    }<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    return builder.build().toByteArray();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
-<span class="sourceLineNo">093</span><a name="line.93"></a>
-<span class="sourceLineNo">094</span>  /**<a name="line.94"></a>
-<span class="sourceLineNo">095</span>   * @param pbBytes A pb serialized {@link FirstKeyValueMatchingQualifiersFilter} instance<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * @return An instance of {@link FirstKeyValueMatchingQualifiersFilter} made from &lt;code&gt;bytes&lt;/code&gt;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   * @throws DeserializationException<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   * @see #toByteArray<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   */<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  public static FirstKeyValueMatchingQualifiersFilter parseFrom(final byte [] pbBytes)<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  throws DeserializationException {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    FilterProtos.FirstKeyValueMatchingQualifiersFilter proto;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    try {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      proto = FilterProtos.FirstKeyValueMatchingQualifiersFilter.parseFrom(pbBytes);<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    } catch (InvalidProtocolBufferException e) {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      throw new DeserializationException(e);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    }<a name="line.107"></a>
-<span class="sourceLineNo">108</span><a name="line.108"></a>
-<span class="sourceLineNo">109</span>    TreeSet&lt;byte []&gt; qualifiers = new TreeSet&lt;byte []&gt;(Bytes.BYTES_COMPARATOR);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    for (ByteString qualifier : proto.getQualifiersList()) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      qualifiers.add(qualifier.toByteArray());<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    return new FirstKeyValueMatchingQualifiersFilter(qualifiers);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  }<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>  /**<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   * @param other<a name="line.117"></a>
-<span class="sourceLineNo">118</span>   * @return true if and only if the fields of the filter that are serialized<a name="line.118"></a>
-<span class="sourceLineNo">119</span>   * are equal to the corresponding fields in other.  Used for testing.<a name="line.119"></a>
-<span class="sourceLineNo">120</span>   */<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  boolean areSerializedFieldsEqual(Filter o) {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    if (o == this) return true;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    if (!(o instanceof FirstKeyValueMatchingQualifiersFilter)) return false;<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span>    FirstKeyValueMatchingQualifiersFilter other = (FirstKeyValueMatchingQualifiersFilter)o;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    return this.qualifiers.equals(other.qualifiers);<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  }<a name="line.127"></a>
-<span class="sourceLineNo">128</span>}<a name="line.128"></a>
+<span class="sourceLineNo">053</span>  private Set&lt;byte []&gt; qualifiers;<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>  /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>   * Constructor which takes a set of columns. As soon as first KeyValue<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   * matching any of these columns is found, filter moves to next row.<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   * <a name="line.58"></a>
+<span class="sourceLineNo">059</span>   * @param qualifiers the set of columns to me matched.<a name="line.59"></a>
+<span class="sourceLineNo">060</span>   */<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  public FirstKeyValueMatchingQualifiersFilter(Set&lt;byte []&gt; qualifiers) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    this.qualifiers = qualifiers;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  }<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>  @Override<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  public ReturnCode filterKeyValue(Cell v) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    if (hasFoundKV()) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>      return ReturnCode.NEXT_ROW;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    } else if (hasOneMatchingQualifier(v)) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>      setFoundKV(true);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    }<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    return ReturnCode.INCLUDE;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>  private boolean hasOneMatchingQualifier(Cell v) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    for (byte[] q : qualifiers) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      if (CellUtil.matchingQualifier(v, q)) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>        return true;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      }<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    return false;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  /**<a name="line.84"></a>
+<span class="sourceLineNo">085</span>   * @return The filter serialized using pb<a name="line.85"></a>
+<span class="sourceLineNo">086</span>   */<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  public byte [] toByteArray() {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    FilterProtos.FirstKeyValueMatchingQualifiersFilter.Builder builder =<a name="line.88"></a>
+<span class="sourceLineNo">089</span>      FilterProtos.FirstKeyValueMatchingQualifiersFilter.newBuilder();<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    for (byte[] qualifier : qualifiers) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      if (qualifier != null) builder.addQualifiers(ByteStringer.wrap(qualifier));<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    return builder.build().toByteArray();<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  /**<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   * @param pbBytes A pb serialized {@link FirstKeyValueMatchingQualifiersFilter} instance<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   * @return An instance of {@link FirstKeyValueMatchingQualifiersFilter} made from &lt;code&gt;bytes&lt;/code&gt;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   * @throws DeserializationException<a name="line.99"></a>
+<span class="sourceLineNo">100</span>   * @see #toByteArray<a name="line.100"></a>
+<span class="sourceLineNo">101</span>   */<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  public static FirstKeyValueMatchingQualifiersFilter parseFrom(final byte [] pbBytes)<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  throws DeserializationException {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    FilterProtos.FirstKeyValueMatchingQualifiersFilter proto;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    try {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      proto = FilterProtos.FirstKeyValueMatchingQualifiersFilter.parseFrom(pbBytes);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    } catch (InvalidProtocolBufferException e) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      throw new DeserializationException(e);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    }<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>    TreeSet&lt;byte []&gt; qualifiers = new TreeSet&lt;byte []&gt;(Bytes.BYTES_COMPARATOR);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    for (ByteString qualifier : proto.getQualifiersList()) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      qualifiers.add(qualifier.toByteArray());<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    }<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    return new FirstKeyValueMatchingQualifiersFilter(qualifiers);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span>  /**<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   * @param other<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   * @return true if and only if the fields of the filter that are serialized<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   * are equal to the corresponding fields in other.  Used for testing.<a name="line.121"></a>
+<span class="sourceLineNo">122</span>   */<a name="line.122"></a>
+<span class="sourceLineNo">123</span>  boolean areSerializedFieldsEqual(Filter o) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    if (o == this) return true;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    if (!(o instanceof FirstKeyValueMatchingQualifiersFilter)) return false;<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>    FirstKeyValueMatchingQualifiersFilter other = (FirstKeyValueMatchingQualifiersFilter)o;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    return this.qualifiers.equals(other.qualifiers);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>}<a name="line.130"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/8acdc839/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/RowCounter.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/RowCounter.html b/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/RowCounter.html
index 3b8f5d2..571c70a 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/RowCounter.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/RowCounter.html
@@ -27,228 +27,217 @@
 <span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.mapreduce;<a name="line.19"></a>
 <span class="sourceLineNo">020</span><a name="line.20"></a>
 <span class="sourceLineNo">021</span>import java.io.IOException;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import java.util.Set;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.util.TreeSet;<a name="line.23"></a>
-<span class="sourceLineNo">024</span><a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.commons.logging.Log;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.commons.logging.LogFactory;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.commons.lang.StringUtils;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.HConstants;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.conf.Configuration;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.conf.Configured;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.client.Result;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.filter.FirstKeyOnlyFilter;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.filter.FirstKeyValueMatchingQualifiersFilter;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.io.ImmutableBytesWritable;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.mapreduce.Counter;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.mapreduce.Job;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.mapreduce.lib.output.NullOutputFormat;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.util.Tool;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.util.ToolRunner;<a name="line.44"></a>
-<span class="sourceLineNo">045</span><a name="line.45"></a>
-<span class="sourceLineNo">046</span>/**<a name="line.46"></a>
-<span class="sourceLineNo">047</span> * A job with a just a map phase to count rows. Map outputs table rows IF the<a name="line.47"></a>
-<span class="sourceLineNo">048</span> * input row has columns that have content.<a name="line.48"></a>
-<span class="sourceLineNo">049</span> */<a name="line.49"></a>
-<span class="sourceLineNo">050</span>@InterfaceAudience.Public<a name="line.50"></a>
-<span class="sourceLineNo">051</span>@InterfaceStability.Stable<a name="line.51"></a>
-<span class="sourceLineNo">052</span>public class RowCounter extends Configured implements Tool {<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>  private static final Log LOG = LogFactory.getLog(RowCounter.class);<a name="line.54"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.logging.Log;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.commons.logging.LogFactory;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.commons.lang.StringUtils;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.HConstants;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.conf.Configuration;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.conf.Configured;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.client.Result;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.filter.FirstKeyOnlyFilter;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.io.ImmutableBytesWritable;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.mapreduce.Counter;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.mapreduce.Job;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.mapreduce.lib.output.NullOutputFormat;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.util.Tool;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.util.ToolRunner;<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>/**<a name="line.43"></a>
+<span class="sourceLineNo">044</span> * A job with a just a map phase to count rows. Map outputs table rows IF the<a name="line.44"></a>
+<span class="sourceLineNo">045</span> * input row has columns that have content.<a name="line.45"></a>
+<span class="sourceLineNo">046</span> */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>@InterfaceAudience.Public<a name="line.47"></a>
+<span class="sourceLineNo">048</span>@InterfaceStability.Stable<a name="line.48"></a>
+<span class="sourceLineNo">049</span>public class RowCounter extends Configured implements Tool {<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>  private static final Log LOG = LogFactory.getLog(RowCounter.class);<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>  /** Name of this 'program'. */<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  static final String NAME = "rowcounter";<a name="line.54"></a>
 <span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>  /** Name of this 'program'. */<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  static final String NAME = "rowcounter";<a name="line.57"></a>
+<span class="sourceLineNo">056</span>  private final static String JOB_NAME_CONF_KEY = "mapreduce.job.name";<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  private final static String EXPECTED_COUNT_KEY = RowCounter.class.getName() + ".expected_count";<a name="line.57"></a>
 <span class="sourceLineNo">058</span><a name="line.58"></a>
-<span class="sourceLineNo">059</span>  private final static String JOB_NAME_CONF_KEY = "mapreduce.job.name";<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  private final static String EXPECTED_COUNT_KEY = RowCounter.class.getName() + ".expected_count";<a name="line.60"></a>
-<span class="sourceLineNo">061</span><a name="line.61"></a>
-<span class="sourceLineNo">062</span>  /**<a name="line.62"></a>
-<span class="sourceLineNo">063</span>   * Mapper that runs the count.<a name="line.63"></a>
-<span class="sourceLineNo">064</span>   */<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  static class RowCounterMapper<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  extends TableMapper&lt;ImmutableBytesWritable, Result&gt; {<a name="line.66"></a>
+<span class="sourceLineNo">059</span>  /**<a name="line.59"></a>
+<span class="sourceLineNo">060</span>   * Mapper that runs the count.<a name="line.60"></a>
+<span class="sourceLineNo">061</span>   */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  static class RowCounterMapper<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  extends TableMapper&lt;ImmutableBytesWritable, Result&gt; {<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>    /** Counter enumeration to count the actual rows. */<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    public static enum Counters {ROWS}<a name="line.66"></a>
 <span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span>    /** Counter enumeration to count the actual rows. */<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    public static enum Counters {ROWS}<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>     * Maps the data.<a name="line.72"></a>
-<span class="sourceLineNo">073</span>     *<a name="line.73"></a>
-<span class="sourceLineNo">074</span>     * @param row  The current table row key.<a name="line.74"></a>
-<span class="sourceLineNo">075</span>     * @param values  The columns.<a name="line.75"></a>
-<span class="sourceLineNo">076</span>     * @param context  The current context.<a name="line.76"></a>
-<span class="sourceLineNo">077</span>     * @throws IOException When something is broken with the data.<a name="line.77"></a>
-<span class="sourceLineNo">078</span>     * @see org.apache.hadoop.mapreduce.Mapper#map(KEYIN, VALUEIN,<a name="line.78"></a>
-<span class="sourceLineNo">079</span>     *   org.apache.hadoop.mapreduce.Mapper.Context)<a name="line.79"></a>
-<span class="sourceLineNo">080</span>     */<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    @Override<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    public void map(ImmutableBytesWritable row, Result values,<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      Context context)<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    throws IOException {<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      // Count every row containing data, whether it's in qualifiers or values<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      context.getCounter(Counters.ROWS).increment(1);<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    }<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  }<a name="line.88"></a>
-<span class="sourceLineNo">089</span><a name="line.89"></a>
-<span class="sourceLineNo">090</span>  /**<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   * Sets up the actual job.<a name="line.91"></a>
-<span class="sourceLineNo">092</span>   *<a name="line.92"></a>
-<span class="sourceLineNo">093</span>   * @param conf  The current configuration.<a name="line.93"></a>
-<span class="sourceLineNo">094</span>   * @param args  The command line parameters.<a name="line.94"></a>
-<span class="sourceLineNo">095</span>   * @return The newly created job.<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * @throws IOException When setting up the job fails.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  public static Job createSubmittableJob(Configuration conf, String[] args)<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  throws IOException {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    String tableName = args[0];<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    String startKey = null;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    String endKey = null;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    long startTime = 0;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    long endTime = 0;<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>    StringBuilder sb = new StringBuilder();<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>    final String rangeSwitch = "--range=";<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    final String startTimeArgKey = "--starttime=";<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    final String endTimeArgKey = "--endtime=";<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    final String expectedCountArg = "--expected-count=";<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>    // First argument is table name, starting from second<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    for (int i = 1; i &lt; args.length; i++) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      if (args[i].startsWith(rangeSwitch)) {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>        String[] startEnd = args[i].substring(rangeSwitch.length()).split(",", 2);<a name="line.116"></a>
-<span class="sourceLineNo">117</span>        if (startEnd.length != 2 || startEnd[1].contains(",")) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>          printUsage("Please specify range in such format as \"--range=a,b\" " +<a name="line.118"></a>
-<span class="sourceLineNo">119</span>              "or, with only one boundary, \"--range=,b\" or \"--range=a,\"");<a name="line.119"></a>
-<span class="sourceLineNo">120</span>          return null;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>        }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>        startKey = startEnd[0];<a name="line.122"></a>
-<span class="sourceLineNo">123</span>        endKey = startEnd[1];<a name="line.123"></a>
-<span class="sourceLineNo">124</span>      }<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      if (startTime &lt; endTime) {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>        printUsage("--endtime=" + endTime + " needs to be greater than --starttime=" + startTime);<a name="line.126"></a>
-<span class="sourceLineNo">127</span>        return null;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      }<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      if (args[i].startsWith(startTimeArgKey)) {<a name="line.129"></a>
-<span class="sourceLineNo">130</span>        startTime = Long.parseLong(args[i].substring(startTimeArgKey.length()));<a name="line.130"></a>
-<span class="sourceLineNo">131</span>        continue;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      }<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      if (args[i].startsWith(endTimeArgKey)) {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>        endTime = Long.parseLong(args[i].substring(endTimeArgKey.length()));<a name="line.134"></a>
-<span class="sourceLineNo">135</span>        continue;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>      }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      if (args[i].startsWith(expectedCountArg)) {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>        conf.setLong(EXPECTED_COUNT_KEY,<a name="line.138"></a>
-<span class="sourceLineNo">139</span>            Long.parseLong(args[i].substring(expectedCountArg.length())));<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        continue;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      }<a name="line.141"></a>
-<span class="sourceLineNo">142</span>      else {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>        // if no switch, assume column names<a name="line.143"></a>
-<span class="sourceLineNo">144</span>        sb.append(args[i]);<a name="line.144"></a>
-<span class="sourceLineNo">145</span>        sb.append(" ");<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      }<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    }<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>    Job job = Job.getInstance(conf, conf.get(JOB_NAME_CONF_KEY, NAME + "_" + tableName));<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    job.setJarByClass(RowCounter.class);<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    Scan scan = new Scan();<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    scan.setCacheBlocks(false);<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    Set&lt;byte []&gt; qualifiers = new TreeSet&lt;byte[]&gt;(Bytes.BYTES_COMPARATOR);<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    if (startKey != null &amp;&amp; !startKey.equals("")) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      scan.setStartRow(Bytes.toBytes(startKey));<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    }<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    if (endKey != null &amp;&amp; !endKey.equals("")) {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      scan.setStopRow(Bytes.toBytes(endKey));<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    if (sb.length() &gt; 0) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      for (String columnName : sb.toString().trim().split(" ")) {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>        String family = StringUtils.substringBefore(columnName, ":");<a name="line.162"></a>
-<span class="sourceLineNo">163</span>        String qualifier = StringUtils.substringAfter(columnName, ":");<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>        if (StringUtils.isBlank(qualifier)) {<a name="line.165"></a>
-<span class="sourceLineNo">166</span>          scan.addFamily(Bytes.toBytes(family));<a name="line.166"></a>
-<span class="sourceLineNo">167</span>        }<a name="line.167"></a>
-<span class="sourceLineNo">168</span>        else {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>          scan.addColumn(Bytes.toBytes(family), Bytes.toBytes(qualifier));<a name="line.169"></a>
-<span class="sourceLineNo">170</span>        }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      }<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    }<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    // specified column may or may not be part of first key value for the row.<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    // Hence do not use FirstKeyOnlyFilter if scan has columns, instead use<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    // FirstKeyValueMatchingQualifiersFilter.<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    if (qualifiers.size() == 0) {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      scan.setFilter(new FirstKeyOnlyFilter());<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    } else {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      scan.setFilter(new FirstKeyValueMatchingQualifiersFilter(qualifiers));<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    }<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    scan.setTimeRange(startTime, endTime == 0 ? HConstants.LATEST_TIMESTAMP : endTime);<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    job.setOutputFormatClass(NullOutputFormat.class);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    TableMapReduceUtil.initTableMapperJob(tableName, scan,<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      RowCounterMapper.class, ImmutableBytesWritable.class, Result.class, job);<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    job.setNumReduceTasks(0);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    return job;<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>   * @param errorMessage Can attach a message when error occurs.<a name="line.190"></a>
-<span class="sourceLineNo">191</span>   */<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  private static void printUsage(String errorMessage) {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    System.err.println("ERROR: " + errorMessage);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    printUsage();<a name="line.194"></a>
-<span class="sourceLineNo">195</span>  }<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  /**<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   * Prints usage without error message.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   * Note that we don't document --expected-count, because it's intended for test.<a name="line.199"></a>
-<span class="sourceLineNo">200</span>   */<a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private static void printUsage() {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    System.err.println("Usage: RowCounter [options] &lt;tablename&gt; " +<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        "[--starttime=[start] --endtime=[end] " +<a name="line.203"></a>
-<span class="sourceLineNo">204</span>        "[--range=[startKey],[endKey]] [&lt;column1&gt; &lt;column2&gt;...]");<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    System.err.println("For performance consider the following options:\n"<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        + "-Dhbase.client.scanner.caching=100\n"<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        + "-Dmapreduce.map.speculative=false");<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  }<a name="line.208"></a>
-<span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span>  @Override<a name="line.210"></a>
-<span class="sourceLineNo">211</span>  public int run(String[] args) throws Exception {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    if (args.length &lt; 1) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      printUsage("Wrong number of parameters: " + args.length);<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      return -1;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    }<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    Job job = createSubmittableJob(getConf(), args);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    if (job == null) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      return -1;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    }<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    boolean success = job.waitForCompletion(true);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    final long expectedCount = getConf().getLong(EXPECTED_COUNT_KEY, -1);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    if (success &amp;&amp; expectedCount != -1) {<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      final Counter counter = job.getCounters().findCounter(RowCounterMapper.Counters.ROWS);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      success = expectedCount == counter.getValue();<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      if (!success) {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        LOG.error("Failing job because count of '" + counter.getValue() +<a name="line.226"></a>
-<span class="sourceLineNo">227</span>            "' does not match expected count of '" + expectedCount + "'");<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      }<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    }<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    return (success ? 0 : 1);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  }<a name="line.231"></a>
-<span class="sourceLineNo">232</span><a name="line.232"></a>
-<span class="sourceLineNo">233</span>  /**<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   * Main entry point.<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   * @param args The command line parameters.<a name="line.235"></a>
-<span class="sourceLineNo">236</span>   * @throws Exception When running the job fails.<a name="line.236"></a>
-<span class="sourceLineNo">237</span>   */<a name="line.237"></a>
-<span class="sourceLineNo">238</span>  public static void main(String[] args) throws Exception {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    int errCode = ToolRunner.run(HBaseConfiguration.create(), new RowCounter(), args);<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    System.exit(errCode);<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  }<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>}<a name="line.243"></a>
+<span class="sourceLineNo">068</span>    /**<a name="line.68"></a>
+<span class="sourceLineNo">069</span>     * Maps the data.<a name="line.69"></a>
+<span class="sourceLineNo">070</span>     *<a name="line.70"></a>
+<span class="sourceLineNo">071</span>     * @param row  The current table row key.<a name="line.71"></a>
+<span class="sourceLineNo">072</span>     * @param values  The columns.<a name="line.72"></a>
+<span class="sourceLineNo">073</span>     * @param context  The current context.<a name="line.73"></a>
+<span class="sourceLineNo">074</span>     * @throws IOException When something is broken with the data.<a name="line.74"></a>
+<span class="sourceLineNo">075</span>     * @see org.apache.hadoop.mapreduce.Mapper#map(KEYIN, VALUEIN,<a name="line.75"></a>
+<span class="sourceLineNo">076</span>     *   org.apache.hadoop.mapreduce.Mapper.Context)<a name="line.76"></a>
+<span class="sourceLineNo">077</span>     */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    @Override<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    public void map(ImmutableBytesWritable row, Result values,<a name="line.79"></a>
+<span class="sourceLineNo">080</span>      Context context)<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    throws IOException {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>      // Count every row containing data, whether it's in qualifiers or values<a name="line.82"></a>
+<span class="sourceLineNo">083</span>      context.getCounter(Counters.ROWS).increment(1);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  }<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>  /**<a name="line.87"></a>
+<span class="sourceLineNo">088</span>   * Sets up the actual job.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   *<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   * @param conf  The current configuration.<a name="line.90"></a>
+<span class="sourceLineNo">091</span>   * @param args  The command line parameters.<a name="line.91"></a>
+<span class="sourceLineNo">092</span>   * @return The newly created job.<a name="line.92"></a>
+<span class="sourceLineNo">093</span>   * @throws IOException When setting up the job fails.<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   */<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  public static Job createSubmittableJob(Configuration conf, String[] args)<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  throws IOException {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    String tableName = args[0];<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    String startKey = null;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    String endKey = null;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    long startTime = 0;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    long endTime = 0;<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>    StringBuilder sb = new StringBuilder();<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span>    final String rangeSwitch = "--range=";<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    final String startTimeArgKey = "--starttime=";<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    final String endTimeArgKey = "--endtime=";<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    final String expectedCountArg = "--expected-count=";<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>    // First argument is table name, starting from second<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    for (int i = 1; i &lt; args.length; i++) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>      if (args[i].startsWith(rangeSwitch)) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        String[] startEnd = args[i].substring(rangeSwitch.length()).split(",", 2);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>        if (startEnd.length != 2 || startEnd[1].contains(",")) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>          printUsage("Please specify range in such format as \"--range=a,b\" " +<a name="line.115"></a>
+<span class="sourceLineNo">116</span>              "or, with only one boundary, \"--range=,b\" or \"--range=a,\"");<a name="line.116"></a>
+<span class="sourceLineNo">117</span>          return null;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        startKey = startEnd[0];<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        endKey = startEnd[1];<a name="line.120"></a>
+<span class="sourceLineNo">121</span>      }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      if (startTime &lt; endTime) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        printUsage("--endtime=" + endTime + " needs to be greater than --starttime=" + startTime);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        return null;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      }<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      if (args[i].startsWith(startTimeArgKey)) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>        startTime = Long.parseLong(args[i].substring(startTimeArgKey.length()));<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        continue;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>      }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      if (args[i].startsWith(endTimeArgKey)) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>        endTime = Long.parseLong(args[i].substring(endTimeArgKey.length()));<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        continue;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      if (args[i].startsWith(expectedCountArg)) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        conf.setLong(EXPECTED_COUNT_KEY,<a name="line.135"></a>
+<span class="sourceLineNo">136</span>            Long.parseLong(args[i].substring(expectedCountArg.length())));<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        continue;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      }<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      else {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        // if no switch, assume column names<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        sb.append(args[i]);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        sb.append(" ");<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      }<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    }<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>    Job job = Job.getInstance(conf, conf.get(JOB_NAME_CONF_KEY, NAME + "_" + tableName));<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    job.setJarByClass(RowCounter.class);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    Scan scan = new Scan();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    scan.setCacheBlocks(false);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    if (startKey != null &amp;&amp; !startKey.equals("")) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      scan.setStartRow(Bytes.toBytes(startKey));<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    }<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    if (endKey != null &amp;&amp; !endKey.equals("")) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      scan.setStopRow(Bytes.toBytes(endKey));<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    if (sb.length() &gt; 0) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      for (String columnName : sb.toString().trim().split(" ")) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        String family = StringUtils.substringBefore(columnName, ":");<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        String qualifier = StringUtils.substringAfter(columnName, ":");<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span>        if (StringUtils.isBlank(qualifier)) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>          scan.addFamily(Bytes.toBytes(family));<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        }<a name="line.163"></a>
+<span class="sourceLineNo">164</span>        else {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>          scan.addColumn(Bytes.toBytes(family), Bytes.toBytes(qualifier));<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    scan.setFilter(new FirstKeyOnlyFilter());<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    scan.setTimeRange(startTime, endTime == 0 ? HConstants.LATEST_TIMESTAMP : endTime);<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    job.setOutputFormatClass(NullOutputFormat.class);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    TableMapReduceUtil.initTableMapperJob(tableName, scan,<a name="line.172"></a>
+<span class="sourceLineNo">173</span>      RowCounterMapper.class, ImmutableBytesWritable.class, Result.class, job);<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    job.setNumReduceTasks(0);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    return job;<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>   * @param errorMessage Can attach a message when error occurs.<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   */<a name="line.180"></a>
+<span class="sourceLineNo">181</span>  private static void printUsage(String errorMessage) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    System.err.println("ERROR: " + errorMessage);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    printUsage();<a name="line.183"></a>
+<span class="sourceLineNo">184</span>  }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>  /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   * Prints usage without error message.<a name="line.187"></a>
+<span class="sourceLineNo">188</span>   * Note that we don't document --expected-count, because it's intended for test.<a name="line.188"></a>
+<span class="sourceLineNo">189</span>   */<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  private static void printUsage() {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    System.err.println("Usage: RowCounter [options] &lt;tablename&gt; " +<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        "[--starttime=[start] --endtime=[end] " +<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        "[--range=[startKey],[endKey]] [&lt;column1&gt; &lt;column2&gt;...]");<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    System.err.println("For performance consider the following options:\n"<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        + "-Dhbase.client.scanner.caching=100\n"<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        + "-Dmapreduce.map.speculative=false");<a name="line.196"></a>
+<span class="sourceLineNo">197</span>  }<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>  @Override<a name="line.199"></a>
+<span class="sourceLineNo">200</span>  public int run(String[] args) throws Exception {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    if (args.length &lt; 1) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      printUsage("Wrong number of parameters: " + args.length);<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      return -1;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    }<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    Job job = createSubmittableJob(getConf(), args);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    if (job == null) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      return -1;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    }<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    boolean success = job.waitForCompletion(true);<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    final long expectedCount = getConf().getLong(EXPECTED_COUNT_KEY, -1);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    if (success &amp;&amp; expectedCount != -1) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      final Counter counter = job.getCounters().findCounter(RowCounterMapper.Counters.ROWS);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      success = expectedCount == counter.getValue();<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      if (!success) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        LOG.error("Failing job because count of '" + counter.getValue() +<a name="line.215"></a>
+<span class="sourceLineNo">216</span>            "' does not match expected count of '" + expectedCount + "'");<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    }<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    return (success ? 0 : 1);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>  }<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>  /**<a name="line.222"></a>
+<span class="sourceLineNo">223</span>   * Main entry point.<a name="line.223"></a>
+<span class="sourceLineNo">224</span>   * @param args The command line parameters.<a name="line.224"></a>
+<span class="sourceLineNo">225</span>   * @throws Exception When running the job fails.<a name="line.225"></a>
+<span class="sourceLineNo">226</span>   */<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  public static void main(String[] args) throws Exception {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    int errCode = ToolRunner.run(HBaseConfiguration.create(), new RowCounter(), args);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    System.exit(errCode);<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>}<a name="line.232"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/8acdc839/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index 9a712f2..59f045a 100644
--- a/book.html
+++ b/book.html
@@ -32868,7 +32868,7 @@ The server will return cellblocks compressed using this same compressor as long
 <div id="footer">
 <div id="footer-text">
 Version 2.0.0-SNAPSHOT<br>
-Last updated 2015-11-23 14:30:56 UTC
+Last updated 2015-11-24 14:46:05 UTC
 </div>
 </div>
 </body>

http://git-wip-us.apache.org/repos/asf/hbase/blob/8acdc839/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index e542d6c..72e7820 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="20151123" />
+    <meta name="Date-Revision-yyyymmdd" content="20151124" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -305,7 +305,7 @@ under the License. -->
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2015-11-23</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2015-11-24</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/8acdc839/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 7262393..e6d42b0 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="20151123" />
+    <meta name="Date-Revision-yyyymmdd" content="20151124" />
     <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" />
@@ -8366,121 +8366,121 @@
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 8, expected level should be 6.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L510">510</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L513">513</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 4.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L558">558</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L561">561</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L621">621</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L624">624</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 4.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L667">667</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L670">670</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 4.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L679">679</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L682">682</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 4.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L697">697</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L700">700</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 4.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L739">739</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L742">742</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 4.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L748">748</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L751">751</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 4.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L760">760</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L763">763</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 4.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L830">830</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L833">833</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 4.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L884">884</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L887">887</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L990">990</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L993">993</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L1056">1056</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L1059">1059</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L1058">1058</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L1061">1061</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L1063">1063</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L1066">1066</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L1065">1065</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L1068">1068</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L1082">1082</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L1085">1085</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L1086">1086</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L1089">1089</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L1100">1100</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L1103">1103</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L1184">1184</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/HColumnDescriptor.html#L1187">1187</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.HConstants.java">org/apache/hadoop/hbase/HConstants.java</h3>
 <table border="0" class="table table-striped">
@@ -28727,49 +28727,49 @@
 <td>indentation</td>
 <td>Indentation</td>
 <td>'FilterProtos' have incorrect indentation level 6, expected level should be 8.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html#L87">87</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html#L89">89</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html#L89">89</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html#L91">91</a></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><a href="./xref/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html#L96">96</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html#L98">98</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html#L97">97</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html#L99">99</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html#L117">117</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html#L119">119</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 4.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html#L119">119</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html#L121">121</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html#L122">122</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html#L124">124</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html#L123">123</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html#L125">125</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.filter.FuzzyRowFilter.java">org/apache/hadoop/hbase/filter/FuzzyRowFilter.java</h3>
 <table border="0" class="table table-striped">
@@ -44213,37 +44213,37 @@
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.commons.logging.Log' import.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/RowCounter.html#L25">25</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/RowCounter.html#L23">23</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.commons.lang.StringUtils' import.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/RowCounter.html#L27">27</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/RowCounter.html#L25">25</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configuration' import.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/RowCounter.html#L31">31</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/RowCounter.html#L29">29</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'extends' have incorrect indentation level 2, expected level should be 6.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/RowCounter.html#L66">66</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/RowCounter.html#L63">63</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'Context' have incorrect indentation level 6, expected level should be 8.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/RowCounter.html#L83">83</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/RowCounter.html#L80">80</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'RowCounterMapper' have incorrect indentation level 6, expected level should be 8.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/RowCounter.html#L184">184</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/RowCounter.html#L173">173</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.mapreduce.SampleUploader.java">org/apache/hadoop/hbase/mapreduce/SampleUploader.java</h3>
 <table border="0" class="table table-striped">
@@ -66224,49 +66224,49 @@
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L653">653</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L660">660</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'.' have incorrect indentation level 6, expected level should be 8.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L699">699</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L706">706</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'.' have incorrect indentation level 6, expected level should be 8.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L700">700</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L707">707</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'.' have incorrect indentation level 6, expected level should be 8.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L701">701</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L708">708</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'.' have incorrect indentation level 6, expected level should be 8.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L702">702</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L709">709</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'.' have incorrect indentation level 6, expected level should be 8.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L703">703</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L710">710</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L800">800</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L807">807</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L851">851</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#L858">858</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.procedure2.util.ByteSlot.java">org/apache/hadoop/hbase/procedure2/util/ByteSlot.java</h3>
 <table border="0" class="table table-striped">
@@ -120140,7 +120140,7 @@
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td><a href="./xref/org/apache/hadoop/metrics2/MetricHistogram.html#L39">39</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/metrics2/MetricHistogram.html#L40">40</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.metrics2.impl.JmxCacheBuster.java">org/apache/hadoop/metrics2/impl/JmxCacheBuster.java</h3>
 <table border="0" class="table table-striped">
@@ -120188,19 +120188,19 @@
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/metrics2/lib/DynamicMetricsRegistry.html#L259">259</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/metrics2/lib/DynamicMetricsRegistry.html#L260">260</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 5, expected level should be 4.</td>
-<td><a href="./xref/org/apache/hadoop/metrics2/lib/DynamicMetricsRegistry.html#L274">274</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/metrics2/lib/DynamicMetricsRegistry.html#L275">275</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'addNewMetricIfAbsent' have incorrect indentation level 2, expected level should be 6.</td>
-<td><a href="./xref/org/apache/hadoop/metrics2/lib/DynamicMetricsRegistry.html#L536">536</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/metrics2/lib/DynamicMetricsRegistry.html#L537">537</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.metrics2.lib.MetricMutableQuantiles.java">org/apache/hadoop/metrics2/lib/MetricMutableQuantiles.java</h3>
 <table border="0" class="table table-striped">
@@ -120348,7 +120348,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2015-11-23</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2015-11-24</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/8acdc839/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index d631bd7..4ca6f24 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="20151123" />
+    <meta name="Date-Revision-yyyymmdd" content="20151124" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Code of Conduct Policy
@@ -331,7 +331,7 @@ For flagrant violations requiring a firm response the PMC may opt to skip early
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2015-11-23</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2015-11-24</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/8acdc839/cygwin.html
----------------------------------------------------------------------
diff --git a/cygwin.html b/cygwin.html
index ac2293e..e3731c8 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="20151123" />
+    <meta name="Date-Revision-yyyymmdd" content="20151124" />
     <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" />
@@ -673,7 +673,7 @@ Now your <b>HBase </b>server is running, <b>start coding</b> and build that next
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2015-11-23</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2015-11-24</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/8acdc839/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index 0195efd..d02e322 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="20151123" />
+    <meta name="Date-Revision-yyyymmdd" content="20151124" />
     <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" />
@@ -518,7 +518,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2015-11-23</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2015-11-24</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/8acdc839/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 4c668af..c799ce8 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="20151123" />
+    <meta name="Date-Revision-yyyymmdd" content="20151124" />
     <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" />
@@ -504,7 +504,7 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="b">
-<td width="25%">3.2.1</td>
+<td width="25%">3.2.2</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-common">org.apache.hbase:hbase-common</a></li>
@@ -1592,7 +1592,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2015-11-23</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2015-11-24</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/8acdc839/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index c3174ab..a929364 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="20151123" />
+    <meta name="Date-Revision-yyyymmdd" content="20151124" />
     <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" />
@@ -312,7 +312,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2015-11-23</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2015-11-24</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/8acdc839/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index 36795c5..6f1f451 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="20151123" />
+    <meta name="Date-Revision-yyyymmdd" content="20151124" />
     <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" />
@@ -343,9 +343,9 @@
 <tr class="b">
 <td>commons-collections</td>
 <td><a class="externalLink" href="http://commons.apache.org/collections/">commons-collections</a></td>
-<td>3.2.1</td>
+<td>3.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>
+<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">
 <td>commons-httpclient</td>
 <td><a class="externalLink" href="http://jakarta.apache.org/httpcomponents/httpclient-3.x/">commons-httpclient</a></td>
@@ -786,7 +786,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2015-11-23</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2015-11-24</li>
             </p>
                 </div>
 


Mime
View raw message