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 2022/01/18 20:18:11 UTC

[hbase-site] branch asf-site updated: Published site at 4a94cfccc9150218364c6800f2f099a878d07bb7.

This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/hbase-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 4cd00cf  Published site at 4a94cfccc9150218364c6800f2f099a878d07bb7.
4cd00cf is described below

commit 4cd00cf9892bfce9c1b74654df1f81476a7df8eb
Author: jenkins <bu...@apache.org>
AuthorDate: Tue Jan 18 20:18:04 2022 +0000

    Published site at 4a94cfccc9150218364c6800f2f099a878d07bb7.
---
 acid-semantics.html                                |   2 +-
 apache_hbase_reference_guide.pdf                   |   4 +-
 .../org/apache/hadoop/hbase/security/User.html     | 153 ++++++++++-----------
 book.html                                          |   2 +-
 bulk-loads.html                                    |   2 +-
 checkstyle-aggregate.html                          |  22 +--
 coc.html                                           |   2 +-
 dependencies.html                                  |   2 +-
 dependency-convergence.html                        |   2 +-
 dependency-info.html                               |   2 +-
 dependency-management.html                         |   2 +-
 .../hbase/security/User.SecureHadoopUser.html      |   6 +-
 .../hadoop/hbase/security/User.TestingGroups.html  |  14 +-
 .../hbase/security/User.SecureHadoopUser.html      | 153 ++++++++++-----------
 .../hadoop/hbase/security/User.TestingGroups.html  | 153 ++++++++++-----------
 .../org/apache/hadoop/hbase/security/User.html     | 153 ++++++++++-----------
 downloads.html                                     |   2 +-
 export_control.html                                |   2 +-
 index.html                                         |   2 +-
 issue-management.html                              |   2 +-
 licenses.html                                      |   2 +-
 mailing-lists.html                                 |   2 +-
 metrics.html                                       |   2 +-
 old_news.html                                      |   2 +-
 plugin-management.html                             |   2 +-
 plugins.html                                       |   2 +-
 poweredbyhbase.html                                |   2 +-
 project-info.html                                  |   2 +-
 project-reports.html                               |   2 +-
 pseudo-distributed.html                            |   2 +-
 replication.html                                   |   2 +-
 resources.html                                     |   2 +-
 scm.html                                           |   2 +-
 sponsors.html                                      |   2 +-
 summary.html                                       |   2 +-
 supportingprojects.html                            |   2 +-
 team.html                                          |   2 +-
 37 files changed, 356 insertions(+), 360 deletions(-)

diff --git a/acid-semantics.html b/acid-semantics.html
index 7a379cb..923d17b 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -455,7 +455,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 5b2aafb..e1a18a7 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.3, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20220116200534+00'00')
-/CreationDate (D:20220116201556+00'00')
+/ModDate (D:20220118200537+00'00')
+/CreationDate (D:20220118201601+00'00')
 >>
 endobj
 2 0 obj
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/security/User.html b/apidocs/src-html/org/apache/hadoop/hbase/security/User.html
index d4ca654..426d013 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/security/User.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/security/User.html
@@ -359,83 +359,82 @@
 <span class="sourceLineNo">351</span>    public static User createUserForTesting(Configuration conf,<a name="line.351"></a>
 <span class="sourceLineNo">352</span>        String name, String[] groups) {<a name="line.352"></a>
 <span class="sourceLineNo">353</span>      synchronized (UserProvider.class) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>        if (!(UserProvider.groups instanceof TestingGroups) ||<a name="line.354"></a>
-<span class="sourceLineNo">355</span>            conf.getBoolean(TestingGroups.TEST_CONF, false)) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>          UserProvider.groups = new TestingGroups(UserProvider.groups);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>        }<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      }<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>      ((TestingGroups)UserProvider.groups).setUserGroups(name, groups);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      return new SecureHadoopUser(UserGroupInformation.createUserForTesting(name, groups));<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>    /**<a name="line.364"></a>
-<span class="sourceLineNo">365</span>     * Obtain credentials for the current process using the configured<a name="line.365"></a>
-<span class="sourceLineNo">366</span>     * Kerberos keytab file and principal.<a name="line.366"></a>
-<span class="sourceLineNo">367</span>     * @see User#login(org.apache.hadoop.conf.Configuration, String, String, String)<a name="line.367"></a>
-<span class="sourceLineNo">368</span>     *<a name="line.368"></a>
-<span class="sourceLineNo">369</span>     * @param conf the Configuration to use<a name="line.369"></a>
-<span class="sourceLineNo">370</span>     * @param fileConfKey Configuration property key used to store the path<a name="line.370"></a>
-<span class="sourceLineNo">371</span>     * to the keytab file<a name="line.371"></a>
-<span class="sourceLineNo">372</span>     * @param principalConfKey Configuration property key used to store the<a name="line.372"></a>
-<span class="sourceLineNo">373</span>     * principal name to login as<a name="line.373"></a>
-<span class="sourceLineNo">374</span>     * @param localhost the local hostname<a name="line.374"></a>
-<span class="sourceLineNo">375</span>     */<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    public static void login(Configuration conf, String fileConfKey,<a name="line.376"></a>
-<span class="sourceLineNo">377</span>        String principalConfKey, String localhost) throws IOException {<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      if (isSecurityEnabled()) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>        SecurityUtil.login(conf, fileConfKey, principalConfKey, localhost);<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      }<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span>    /**<a name="line.383"></a>
-<span class="sourceLineNo">384</span>     * Login through configured keytab and pricipal.<a name="line.384"></a>
-<span class="sourceLineNo">385</span>     * @param keytabLocation location of keytab<a name="line.385"></a>
-<span class="sourceLineNo">386</span>     * @param principalName principal in keytab<a name="line.386"></a>
-<span class="sourceLineNo">387</span>     * @throws IOException exception from UserGroupInformation.loginUserFromKeytab<a name="line.387"></a>
-<span class="sourceLineNo">388</span>     */<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    public static void login(String keytabLocation, String principalName)<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        throws IOException {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      if (isSecurityEnabled()) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>        UserGroupInformation.loginUserFromKeytab(principalName, keytabLocation);<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
-<span class="sourceLineNo">395</span><a name="line.395"></a>
-<span class="sourceLineNo">396</span>    /**<a name="line.396"></a>
-<span class="sourceLineNo">397</span>     * Returns the result of {@code UserGroupInformation.isSecurityEnabled()}.<a name="line.397"></a>
-<span class="sourceLineNo">398</span>     */<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    public static boolean isSecurityEnabled() {<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      return UserGroupInformation.isSecurityEnabled();<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  }<a name="line.402"></a>
-<span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>  public static class TestingGroups extends Groups {<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    public static final String TEST_CONF = "hbase.group.service.for.test.only";<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>    private final Map&lt;String, List&lt;String&gt;&gt; userToGroupsMapping = new HashMap&lt;&gt;();<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    private Groups underlyingImplementation;<a name="line.408"></a>
-<span class="sourceLineNo">409</span><a name="line.409"></a>
-<span class="sourceLineNo">410</span>    public TestingGroups(Groups underlyingImplementation) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      super(new Configuration());<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      this.underlyingImplementation = underlyingImplementation;<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    }<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>    @Override<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    public List&lt;String&gt; getGroups(String user) throws IOException {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      List&lt;String&gt; result = userToGroupsMapping.get(user);<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>      if (result == null) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        result = underlyingImplementation.getGroups(user);<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      }<a name="line.421"></a>
-<span class="sourceLineNo">422</span><a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return result;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    }<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>    private void setUserGroups(String user, String[] groups) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      userToGroupsMapping.put(user, Arrays.asList(groups));<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    }<a name="line.428"></a>
-<span class="sourceLineNo">429</span>  }<a name="line.429"></a>
-<span class="sourceLineNo">430</span>}<a name="line.430"></a>
+<span class="sourceLineNo">354</span>        if (!(UserProvider.groups instanceof TestingGroups)) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          UserProvider.groups = new TestingGroups(UserProvider.groups);<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>      ((TestingGroups)UserProvider.groups).setUserGroups(name, groups);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      return new SecureHadoopUser(UserGroupInformation.createUserForTesting(name, groups));<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>    /**<a name="line.363"></a>
+<span class="sourceLineNo">364</span>     * Obtain credentials for the current process using the configured<a name="line.364"></a>
+<span class="sourceLineNo">365</span>     * Kerberos keytab file and principal.<a name="line.365"></a>
+<span class="sourceLineNo">366</span>     * @see User#login(org.apache.hadoop.conf.Configuration, String, String, String)<a name="line.366"></a>
+<span class="sourceLineNo">367</span>     *<a name="line.367"></a>
+<span class="sourceLineNo">368</span>     * @param conf the Configuration to use<a name="line.368"></a>
+<span class="sourceLineNo">369</span>     * @param fileConfKey Configuration property key used to store the path<a name="line.369"></a>
+<span class="sourceLineNo">370</span>     * to the keytab file<a name="line.370"></a>
+<span class="sourceLineNo">371</span>     * @param principalConfKey Configuration property key used to store the<a name="line.371"></a>
+<span class="sourceLineNo">372</span>     * principal name to login as<a name="line.372"></a>
+<span class="sourceLineNo">373</span>     * @param localhost the local hostname<a name="line.373"></a>
+<span class="sourceLineNo">374</span>     */<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    public static void login(Configuration conf, String fileConfKey,<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        String principalConfKey, String localhost) throws IOException {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      if (isSecurityEnabled()) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        SecurityUtil.login(conf, fileConfKey, principalConfKey, localhost);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      }<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>    /**<a name="line.382"></a>
+<span class="sourceLineNo">383</span>     * Login through configured keytab and pricipal.<a name="line.383"></a>
+<span class="sourceLineNo">384</span>     * @param keytabLocation location of keytab<a name="line.384"></a>
+<span class="sourceLineNo">385</span>     * @param principalName principal in keytab<a name="line.385"></a>
+<span class="sourceLineNo">386</span>     * @throws IOException exception from UserGroupInformation.loginUserFromKeytab<a name="line.386"></a>
+<span class="sourceLineNo">387</span>     */<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    public static void login(String keytabLocation, String principalName)<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        throws IOException {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      if (isSecurityEnabled()) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        UserGroupInformation.loginUserFromKeytab(principalName, keytabLocation);<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      }<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    }<a name="line.393"></a>
+<span class="sourceLineNo">394</span><a name="line.394"></a>
+<span class="sourceLineNo">395</span>    /**<a name="line.395"></a>
+<span class="sourceLineNo">396</span>     * Returns the result of {@code UserGroupInformation.isSecurityEnabled()}.<a name="line.396"></a>
+<span class="sourceLineNo">397</span>     */<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    public static boolean isSecurityEnabled() {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>      return UserGroupInformation.isSecurityEnabled();<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    }<a name="line.400"></a>
+<span class="sourceLineNo">401</span>  }<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>  public static class TestingGroups extends Groups {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    public static final String TEST_CONF = "hbase.group.service.for.test.only";<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>    private final Map&lt;String, List&lt;String&gt;&gt; userToGroupsMapping = new HashMap&lt;&gt;();<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    private Groups underlyingImplementation;<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>    public TestingGroups(Groups underlyingImplementation) {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      super(new Configuration());<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      this.underlyingImplementation = underlyingImplementation;<a name="line.411"></a>
+<span class="sourceLineNo">412</span>    }<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>    @Override<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    public List&lt;String&gt; getGroups(String user) throws IOException {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      List&lt;String&gt; result = userToGroupsMapping.get(user);<a name="line.416"></a>
+<span class="sourceLineNo">417</span><a name="line.417"></a>
+<span class="sourceLineNo">418</span>      if (result == null) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        result = underlyingImplementation.getGroups(user);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      }<a name="line.420"></a>
+<span class="sourceLineNo">421</span><a name="line.421"></a>
+<span class="sourceLineNo">422</span>      return result;<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>    private void setUserGroups(String user, String[] groups) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      userToGroupsMapping.put(user, Arrays.asList(groups));<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    }<a name="line.427"></a>
+<span class="sourceLineNo">428</span>  }<a name="line.428"></a>
+<span class="sourceLineNo">429</span>}<a name="line.429"></a>
 
 
 
diff --git a/book.html b/book.html
index 93d75bc..ca23714 100644
--- a/book.html
+++ b/book.html
@@ -46486,7 +46486,7 @@ org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/
 <div id="footer">
 <div id="footer-text">
 Version 3.0.0-alpha-3-SNAPSHOT<br>
-Last updated 2022-01-16 20:05:34 UTC
+Last updated 2022-01-18 20:05:37 UTC
 </div>
 </div>
 <link rel="stylesheet" href="./coderay-asciidoctor.css">
diff --git a/bulk-loads.html b/bulk-loads.html
index 08edb2e..36316ec 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -160,7 +160,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 1b6fb40..9f00bd3 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -7307,7 +7307,7 @@
 <tr class="a">
 <td>annotation</td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_annotation.html#MissingDeprecated">MissingDeprecated</a></td>
-<td>9</td>
+<td>6</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td>blocks</td>
@@ -7411,7 +7411,7 @@
 <tr class="b">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#NonEmptyAtclauseDescription">NonEmptyAtclauseDescription</a></td>
-<td>2069</td>
+<td>2072</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td>misc</td>
@@ -34671,8 +34671,8 @@
 <th>Line</th></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>annotation</td>
-<td>MissingDeprecated</td>
+<td>javadoc</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 14 has parse error. Details: mismatched input ':' expecting &lt;EOF&gt; while parsing JAVADOC</td>
 <td>46</td></tr></table></div>
 <div class="section">
@@ -49140,8 +49140,8 @@
 <th>Line</th></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>annotation</td>
-<td>MissingDeprecated</td>
+<td>javadoc</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 54 has parse error. Details: no viable alternative at input '(' while parsing JAVADOC_INLINE_TAG</td>
 <td>59</td></tr>
 <tr class="b">
@@ -58962,13 +58962,13 @@
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>371</td></tr>
+<td>370</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>373</td></tr></table></div>
+<td>372</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.security.access.AccessControlClient.java">org/apache/hadoop/hbase/security/access/AccessControlClient.java</h3>
 <table border="0" class="table table-striped">
@@ -68700,8 +68700,8 @@
 <td>598</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>annotation</td>
-<td>MissingDeprecated</td>
+<td>javadoc</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 0 has parse error. Details: mismatched input '   *' expecting JAVADOC_INLINE_TAG_END while parsing JAVADOC_INLINE_TAG</td>
 <td>747</td></tr>
 <tr class="b">
@@ -71775,7 +71775,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/coc.html b/coc.html
index 1af07f4..f18c541 100644
--- a/coc.html
+++ b/coc.html
@@ -229,7 +229,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependencies.html b/dependencies.html
index a37d180..3e67281 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -301,7 +301,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 03ac5f3..7dce6de 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -925,7 +925,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependency-info.html b/dependency-info.html
index 08f4673..4cfae51 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -182,7 +182,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependency-management.html b/dependency-management.html
index a3a7ee2..23aaea2 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -1259,7 +1259,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/devapidocs/org/apache/hadoop/hbase/security/User.SecureHadoopUser.html b/devapidocs/org/apache/hadoop/hbase/security/User.SecureHadoopUser.html
index 55b8eeb..e807093 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/User.SecureHadoopUser.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/User.SecureHadoopUser.html
@@ -452,7 +452,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/User.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>login</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/security/User.SecureHadoopUser.html#line.376">login</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/security/User.SecureHadoopUser.html#line.375">login</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fileConfKey,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;principalConfKey,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localhost)
@@ -480,7 +480,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/User.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>login</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/security/User.SecureHadoopUser.html#line.389">login</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;keytabLocation,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/security/User.SecureHadoopUser.html#line.388">login</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;keytabLocation,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;principalName)
                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Login through configured keytab and pricipal.</div>
@@ -499,7 +499,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/security/User.html" titl
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isSecurityEnabled</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/security/User.SecureHadoopUser.html#line.399">isSecurityEnabled</a>()</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/security/User.SecureHadoopUser.html#line.398">isSecurityEnabled</a>()</pre>
 <div class="block">Returns the result of <code>UserGroupInformation.isSecurityEnabled()</code>.</div>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/security/User.TestingGroups.html b/devapidocs/org/apache/hadoop/hbase/security/User.TestingGroups.html
index 99a5b30..71df36e 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/User.TestingGroups.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/User.TestingGroups.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/security/User.html#line.404">User.TestingGroups</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/security/User.html#line.403">User.TestingGroups</a>
 extends org.apache.hadoop.security.Groups</pre>
 </li>
 </ul>
@@ -226,7 +226,7 @@ extends org.apache.hadoop.security.Groups</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_CONF</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/security/User.TestingGroups.html#line.405">TEST_CONF</a></pre>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/security/User.TestingGroups.html#line.404">TEST_CONF</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.security.User.TestingGroups.TEST_CONF">Constant Field Values</a></dd>
@@ -239,7 +239,7 @@ extends org.apache.hadoop.security.Groups</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>userToGroupsMapping</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs [...]
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs [...]
 </li>
 </ul>
 <a name="underlyingImplementation">
@@ -248,7 +248,7 @@ extends org.apache.hadoop.security.Groups</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>underlyingImplementation</h4>
-<pre>private&nbsp;org.apache.hadoop.security.Groups <a href="../../../../../src-html/org/apache/hadoop/hbase/security/User.TestingGroups.html#line.408">underlyingImplementation</a></pre>
+<pre>private&nbsp;org.apache.hadoop.security.Groups <a href="../../../../../src-html/org/apache/hadoop/hbase/security/User.TestingGroups.html#line.407">underlyingImplementation</a></pre>
 </li>
 </ul>
 </li>
@@ -265,7 +265,7 @@ extends org.apache.hadoop.security.Groups</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestingGroups</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/security/User.TestingGroups.html#line.410">TestingGroups</a>(org.apache.hadoop.security.Groups&nbsp;underlyingImplementation)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/security/User.TestingGroups.html#line.409">TestingGroups</a>(org.apache.hadoop.security.Groups&nbsp;underlyingImplementation)</pre>
 </li>
 </ul>
 </li>
@@ -282,7 +282,7 @@ extends org.apache.hadoop.security.Groups</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getGroups</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/security/User.TestingGroups.html#line.416">getGroups</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.h [...]
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/security/User.TestingGroups.html#line.415">getGroups</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.h [...]
                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -298,7 +298,7 @@ extends org.apache.hadoop.security.Groups</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>setUserGroups</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/security/User.TestingGroups.html#line.426">setUserGroups</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/security/User.TestingGroups.html#line.425">setUserGroups</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;groups)</pre>
 </li>
 </ul>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/security/User.SecureHadoopUser.html b/devapidocs/src-html/org/apache/hadoop/hbase/security/User.SecureHadoopUser.html
index d4ca654..426d013 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/security/User.SecureHadoopUser.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/security/User.SecureHadoopUser.html
@@ -359,83 +359,82 @@
 <span class="sourceLineNo">351</span>    public static User createUserForTesting(Configuration conf,<a name="line.351"></a>
 <span class="sourceLineNo">352</span>        String name, String[] groups) {<a name="line.352"></a>
 <span class="sourceLineNo">353</span>      synchronized (UserProvider.class) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>        if (!(UserProvider.groups instanceof TestingGroups) ||<a name="line.354"></a>
-<span class="sourceLineNo">355</span>            conf.getBoolean(TestingGroups.TEST_CONF, false)) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>          UserProvider.groups = new TestingGroups(UserProvider.groups);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>        }<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      }<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>      ((TestingGroups)UserProvider.groups).setUserGroups(name, groups);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      return new SecureHadoopUser(UserGroupInformation.createUserForTesting(name, groups));<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>    /**<a name="line.364"></a>
-<span class="sourceLineNo">365</span>     * Obtain credentials for the current process using the configured<a name="line.365"></a>
-<span class="sourceLineNo">366</span>     * Kerberos keytab file and principal.<a name="line.366"></a>
-<span class="sourceLineNo">367</span>     * @see User#login(org.apache.hadoop.conf.Configuration, String, String, String)<a name="line.367"></a>
-<span class="sourceLineNo">368</span>     *<a name="line.368"></a>
-<span class="sourceLineNo">369</span>     * @param conf the Configuration to use<a name="line.369"></a>
-<span class="sourceLineNo">370</span>     * @param fileConfKey Configuration property key used to store the path<a name="line.370"></a>
-<span class="sourceLineNo">371</span>     * to the keytab file<a name="line.371"></a>
-<span class="sourceLineNo">372</span>     * @param principalConfKey Configuration property key used to store the<a name="line.372"></a>
-<span class="sourceLineNo">373</span>     * principal name to login as<a name="line.373"></a>
-<span class="sourceLineNo">374</span>     * @param localhost the local hostname<a name="line.374"></a>
-<span class="sourceLineNo">375</span>     */<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    public static void login(Configuration conf, String fileConfKey,<a name="line.376"></a>
-<span class="sourceLineNo">377</span>        String principalConfKey, String localhost) throws IOException {<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      if (isSecurityEnabled()) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>        SecurityUtil.login(conf, fileConfKey, principalConfKey, localhost);<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      }<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span>    /**<a name="line.383"></a>
-<span class="sourceLineNo">384</span>     * Login through configured keytab and pricipal.<a name="line.384"></a>
-<span class="sourceLineNo">385</span>     * @param keytabLocation location of keytab<a name="line.385"></a>
-<span class="sourceLineNo">386</span>     * @param principalName principal in keytab<a name="line.386"></a>
-<span class="sourceLineNo">387</span>     * @throws IOException exception from UserGroupInformation.loginUserFromKeytab<a name="line.387"></a>
-<span class="sourceLineNo">388</span>     */<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    public static void login(String keytabLocation, String principalName)<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        throws IOException {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      if (isSecurityEnabled()) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>        UserGroupInformation.loginUserFromKeytab(principalName, keytabLocation);<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
-<span class="sourceLineNo">395</span><a name="line.395"></a>
-<span class="sourceLineNo">396</span>    /**<a name="line.396"></a>
-<span class="sourceLineNo">397</span>     * Returns the result of {@code UserGroupInformation.isSecurityEnabled()}.<a name="line.397"></a>
-<span class="sourceLineNo">398</span>     */<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    public static boolean isSecurityEnabled() {<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      return UserGroupInformation.isSecurityEnabled();<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  }<a name="line.402"></a>
-<span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>  public static class TestingGroups extends Groups {<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    public static final String TEST_CONF = "hbase.group.service.for.test.only";<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>    private final Map&lt;String, List&lt;String&gt;&gt; userToGroupsMapping = new HashMap&lt;&gt;();<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    private Groups underlyingImplementation;<a name="line.408"></a>
-<span class="sourceLineNo">409</span><a name="line.409"></a>
-<span class="sourceLineNo">410</span>    public TestingGroups(Groups underlyingImplementation) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      super(new Configuration());<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      this.underlyingImplementation = underlyingImplementation;<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    }<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>    @Override<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    public List&lt;String&gt; getGroups(String user) throws IOException {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      List&lt;String&gt; result = userToGroupsMapping.get(user);<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>      if (result == null) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        result = underlyingImplementation.getGroups(user);<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      }<a name="line.421"></a>
-<span class="sourceLineNo">422</span><a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return result;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    }<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>    private void setUserGroups(String user, String[] groups) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      userToGroupsMapping.put(user, Arrays.asList(groups));<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    }<a name="line.428"></a>
-<span class="sourceLineNo">429</span>  }<a name="line.429"></a>
-<span class="sourceLineNo">430</span>}<a name="line.430"></a>
+<span class="sourceLineNo">354</span>        if (!(UserProvider.groups instanceof TestingGroups)) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          UserProvider.groups = new TestingGroups(UserProvider.groups);<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>      ((TestingGroups)UserProvider.groups).setUserGroups(name, groups);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      return new SecureHadoopUser(UserGroupInformation.createUserForTesting(name, groups));<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>    /**<a name="line.363"></a>
+<span class="sourceLineNo">364</span>     * Obtain credentials for the current process using the configured<a name="line.364"></a>
+<span class="sourceLineNo">365</span>     * Kerberos keytab file and principal.<a name="line.365"></a>
+<span class="sourceLineNo">366</span>     * @see User#login(org.apache.hadoop.conf.Configuration, String, String, String)<a name="line.366"></a>
+<span class="sourceLineNo">367</span>     *<a name="line.367"></a>
+<span class="sourceLineNo">368</span>     * @param conf the Configuration to use<a name="line.368"></a>
+<span class="sourceLineNo">369</span>     * @param fileConfKey Configuration property key used to store the path<a name="line.369"></a>
+<span class="sourceLineNo">370</span>     * to the keytab file<a name="line.370"></a>
+<span class="sourceLineNo">371</span>     * @param principalConfKey Configuration property key used to store the<a name="line.371"></a>
+<span class="sourceLineNo">372</span>     * principal name to login as<a name="line.372"></a>
+<span class="sourceLineNo">373</span>     * @param localhost the local hostname<a name="line.373"></a>
+<span class="sourceLineNo">374</span>     */<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    public static void login(Configuration conf, String fileConfKey,<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        String principalConfKey, String localhost) throws IOException {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      if (isSecurityEnabled()) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        SecurityUtil.login(conf, fileConfKey, principalConfKey, localhost);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      }<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>    /**<a name="line.382"></a>
+<span class="sourceLineNo">383</span>     * Login through configured keytab and pricipal.<a name="line.383"></a>
+<span class="sourceLineNo">384</span>     * @param keytabLocation location of keytab<a name="line.384"></a>
+<span class="sourceLineNo">385</span>     * @param principalName principal in keytab<a name="line.385"></a>
+<span class="sourceLineNo">386</span>     * @throws IOException exception from UserGroupInformation.loginUserFromKeytab<a name="line.386"></a>
+<span class="sourceLineNo">387</span>     */<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    public static void login(String keytabLocation, String principalName)<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        throws IOException {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      if (isSecurityEnabled()) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        UserGroupInformation.loginUserFromKeytab(principalName, keytabLocation);<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      }<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    }<a name="line.393"></a>
+<span class="sourceLineNo">394</span><a name="line.394"></a>
+<span class="sourceLineNo">395</span>    /**<a name="line.395"></a>
+<span class="sourceLineNo">396</span>     * Returns the result of {@code UserGroupInformation.isSecurityEnabled()}.<a name="line.396"></a>
+<span class="sourceLineNo">397</span>     */<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    public static boolean isSecurityEnabled() {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>      return UserGroupInformation.isSecurityEnabled();<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    }<a name="line.400"></a>
+<span class="sourceLineNo">401</span>  }<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>  public static class TestingGroups extends Groups {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    public static final String TEST_CONF = "hbase.group.service.for.test.only";<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>    private final Map&lt;String, List&lt;String&gt;&gt; userToGroupsMapping = new HashMap&lt;&gt;();<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    private Groups underlyingImplementation;<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>    public TestingGroups(Groups underlyingImplementation) {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      super(new Configuration());<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      this.underlyingImplementation = underlyingImplementation;<a name="line.411"></a>
+<span class="sourceLineNo">412</span>    }<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>    @Override<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    public List&lt;String&gt; getGroups(String user) throws IOException {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      List&lt;String&gt; result = userToGroupsMapping.get(user);<a name="line.416"></a>
+<span class="sourceLineNo">417</span><a name="line.417"></a>
+<span class="sourceLineNo">418</span>      if (result == null) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        result = underlyingImplementation.getGroups(user);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      }<a name="line.420"></a>
+<span class="sourceLineNo">421</span><a name="line.421"></a>
+<span class="sourceLineNo">422</span>      return result;<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>    private void setUserGroups(String user, String[] groups) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      userToGroupsMapping.put(user, Arrays.asList(groups));<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    }<a name="line.427"></a>
+<span class="sourceLineNo">428</span>  }<a name="line.428"></a>
+<span class="sourceLineNo">429</span>}<a name="line.429"></a>
 
 
 
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/security/User.TestingGroups.html b/devapidocs/src-html/org/apache/hadoop/hbase/security/User.TestingGroups.html
index d4ca654..426d013 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/security/User.TestingGroups.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/security/User.TestingGroups.html
@@ -359,83 +359,82 @@
 <span class="sourceLineNo">351</span>    public static User createUserForTesting(Configuration conf,<a name="line.351"></a>
 <span class="sourceLineNo">352</span>        String name, String[] groups) {<a name="line.352"></a>
 <span class="sourceLineNo">353</span>      synchronized (UserProvider.class) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>        if (!(UserProvider.groups instanceof TestingGroups) ||<a name="line.354"></a>
-<span class="sourceLineNo">355</span>            conf.getBoolean(TestingGroups.TEST_CONF, false)) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>          UserProvider.groups = new TestingGroups(UserProvider.groups);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>        }<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      }<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>      ((TestingGroups)UserProvider.groups).setUserGroups(name, groups);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      return new SecureHadoopUser(UserGroupInformation.createUserForTesting(name, groups));<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>    /**<a name="line.364"></a>
-<span class="sourceLineNo">365</span>     * Obtain credentials for the current process using the configured<a name="line.365"></a>
-<span class="sourceLineNo">366</span>     * Kerberos keytab file and principal.<a name="line.366"></a>
-<span class="sourceLineNo">367</span>     * @see User#login(org.apache.hadoop.conf.Configuration, String, String, String)<a name="line.367"></a>
-<span class="sourceLineNo">368</span>     *<a name="line.368"></a>
-<span class="sourceLineNo">369</span>     * @param conf the Configuration to use<a name="line.369"></a>
-<span class="sourceLineNo">370</span>     * @param fileConfKey Configuration property key used to store the path<a name="line.370"></a>
-<span class="sourceLineNo">371</span>     * to the keytab file<a name="line.371"></a>
-<span class="sourceLineNo">372</span>     * @param principalConfKey Configuration property key used to store the<a name="line.372"></a>
-<span class="sourceLineNo">373</span>     * principal name to login as<a name="line.373"></a>
-<span class="sourceLineNo">374</span>     * @param localhost the local hostname<a name="line.374"></a>
-<span class="sourceLineNo">375</span>     */<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    public static void login(Configuration conf, String fileConfKey,<a name="line.376"></a>
-<span class="sourceLineNo">377</span>        String principalConfKey, String localhost) throws IOException {<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      if (isSecurityEnabled()) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>        SecurityUtil.login(conf, fileConfKey, principalConfKey, localhost);<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      }<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span>    /**<a name="line.383"></a>
-<span class="sourceLineNo">384</span>     * Login through configured keytab and pricipal.<a name="line.384"></a>
-<span class="sourceLineNo">385</span>     * @param keytabLocation location of keytab<a name="line.385"></a>
-<span class="sourceLineNo">386</span>     * @param principalName principal in keytab<a name="line.386"></a>
-<span class="sourceLineNo">387</span>     * @throws IOException exception from UserGroupInformation.loginUserFromKeytab<a name="line.387"></a>
-<span class="sourceLineNo">388</span>     */<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    public static void login(String keytabLocation, String principalName)<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        throws IOException {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      if (isSecurityEnabled()) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>        UserGroupInformation.loginUserFromKeytab(principalName, keytabLocation);<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
-<span class="sourceLineNo">395</span><a name="line.395"></a>
-<span class="sourceLineNo">396</span>    /**<a name="line.396"></a>
-<span class="sourceLineNo">397</span>     * Returns the result of {@code UserGroupInformation.isSecurityEnabled()}.<a name="line.397"></a>
-<span class="sourceLineNo">398</span>     */<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    public static boolean isSecurityEnabled() {<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      return UserGroupInformation.isSecurityEnabled();<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  }<a name="line.402"></a>
-<span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>  public static class TestingGroups extends Groups {<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    public static final String TEST_CONF = "hbase.group.service.for.test.only";<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>    private final Map&lt;String, List&lt;String&gt;&gt; userToGroupsMapping = new HashMap&lt;&gt;();<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    private Groups underlyingImplementation;<a name="line.408"></a>
-<span class="sourceLineNo">409</span><a name="line.409"></a>
-<span class="sourceLineNo">410</span>    public TestingGroups(Groups underlyingImplementation) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      super(new Configuration());<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      this.underlyingImplementation = underlyingImplementation;<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    }<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>    @Override<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    public List&lt;String&gt; getGroups(String user) throws IOException {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      List&lt;String&gt; result = userToGroupsMapping.get(user);<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>      if (result == null) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        result = underlyingImplementation.getGroups(user);<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      }<a name="line.421"></a>
-<span class="sourceLineNo">422</span><a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return result;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    }<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>    private void setUserGroups(String user, String[] groups) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      userToGroupsMapping.put(user, Arrays.asList(groups));<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    }<a name="line.428"></a>
-<span class="sourceLineNo">429</span>  }<a name="line.429"></a>
-<span class="sourceLineNo">430</span>}<a name="line.430"></a>
+<span class="sourceLineNo">354</span>        if (!(UserProvider.groups instanceof TestingGroups)) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          UserProvider.groups = new TestingGroups(UserProvider.groups);<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>      ((TestingGroups)UserProvider.groups).setUserGroups(name, groups);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      return new SecureHadoopUser(UserGroupInformation.createUserForTesting(name, groups));<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>    /**<a name="line.363"></a>
+<span class="sourceLineNo">364</span>     * Obtain credentials for the current process using the configured<a name="line.364"></a>
+<span class="sourceLineNo">365</span>     * Kerberos keytab file and principal.<a name="line.365"></a>
+<span class="sourceLineNo">366</span>     * @see User#login(org.apache.hadoop.conf.Configuration, String, String, String)<a name="line.366"></a>
+<span class="sourceLineNo">367</span>     *<a name="line.367"></a>
+<span class="sourceLineNo">368</span>     * @param conf the Configuration to use<a name="line.368"></a>
+<span class="sourceLineNo">369</span>     * @param fileConfKey Configuration property key used to store the path<a name="line.369"></a>
+<span class="sourceLineNo">370</span>     * to the keytab file<a name="line.370"></a>
+<span class="sourceLineNo">371</span>     * @param principalConfKey Configuration property key used to store the<a name="line.371"></a>
+<span class="sourceLineNo">372</span>     * principal name to login as<a name="line.372"></a>
+<span class="sourceLineNo">373</span>     * @param localhost the local hostname<a name="line.373"></a>
+<span class="sourceLineNo">374</span>     */<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    public static void login(Configuration conf, String fileConfKey,<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        String principalConfKey, String localhost) throws IOException {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      if (isSecurityEnabled()) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        SecurityUtil.login(conf, fileConfKey, principalConfKey, localhost);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      }<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>    /**<a name="line.382"></a>
+<span class="sourceLineNo">383</span>     * Login through configured keytab and pricipal.<a name="line.383"></a>
+<span class="sourceLineNo">384</span>     * @param keytabLocation location of keytab<a name="line.384"></a>
+<span class="sourceLineNo">385</span>     * @param principalName principal in keytab<a name="line.385"></a>
+<span class="sourceLineNo">386</span>     * @throws IOException exception from UserGroupInformation.loginUserFromKeytab<a name="line.386"></a>
+<span class="sourceLineNo">387</span>     */<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    public static void login(String keytabLocation, String principalName)<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        throws IOException {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      if (isSecurityEnabled()) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        UserGroupInformation.loginUserFromKeytab(principalName, keytabLocation);<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      }<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    }<a name="line.393"></a>
+<span class="sourceLineNo">394</span><a name="line.394"></a>
+<span class="sourceLineNo">395</span>    /**<a name="line.395"></a>
+<span class="sourceLineNo">396</span>     * Returns the result of {@code UserGroupInformation.isSecurityEnabled()}.<a name="line.396"></a>
+<span class="sourceLineNo">397</span>     */<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    public static boolean isSecurityEnabled() {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>      return UserGroupInformation.isSecurityEnabled();<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    }<a name="line.400"></a>
+<span class="sourceLineNo">401</span>  }<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>  public static class TestingGroups extends Groups {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    public static final String TEST_CONF = "hbase.group.service.for.test.only";<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>    private final Map&lt;String, List&lt;String&gt;&gt; userToGroupsMapping = new HashMap&lt;&gt;();<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    private Groups underlyingImplementation;<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>    public TestingGroups(Groups underlyingImplementation) {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      super(new Configuration());<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      this.underlyingImplementation = underlyingImplementation;<a name="line.411"></a>
+<span class="sourceLineNo">412</span>    }<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>    @Override<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    public List&lt;String&gt; getGroups(String user) throws IOException {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      List&lt;String&gt; result = userToGroupsMapping.get(user);<a name="line.416"></a>
+<span class="sourceLineNo">417</span><a name="line.417"></a>
+<span class="sourceLineNo">418</span>      if (result == null) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        result = underlyingImplementation.getGroups(user);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      }<a name="line.420"></a>
+<span class="sourceLineNo">421</span><a name="line.421"></a>
+<span class="sourceLineNo">422</span>      return result;<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>    private void setUserGroups(String user, String[] groups) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      userToGroupsMapping.put(user, Arrays.asList(groups));<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    }<a name="line.427"></a>
+<span class="sourceLineNo">428</span>  }<a name="line.428"></a>
+<span class="sourceLineNo">429</span>}<a name="line.429"></a>
 
 
 
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/security/User.html b/devapidocs/src-html/org/apache/hadoop/hbase/security/User.html
index d4ca654..426d013 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/security/User.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/security/User.html
@@ -359,83 +359,82 @@
 <span class="sourceLineNo">351</span>    public static User createUserForTesting(Configuration conf,<a name="line.351"></a>
 <span class="sourceLineNo">352</span>        String name, String[] groups) {<a name="line.352"></a>
 <span class="sourceLineNo">353</span>      synchronized (UserProvider.class) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>        if (!(UserProvider.groups instanceof TestingGroups) ||<a name="line.354"></a>
-<span class="sourceLineNo">355</span>            conf.getBoolean(TestingGroups.TEST_CONF, false)) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>          UserProvider.groups = new TestingGroups(UserProvider.groups);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>        }<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      }<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>      ((TestingGroups)UserProvider.groups).setUserGroups(name, groups);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      return new SecureHadoopUser(UserGroupInformation.createUserForTesting(name, groups));<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>    /**<a name="line.364"></a>
-<span class="sourceLineNo">365</span>     * Obtain credentials for the current process using the configured<a name="line.365"></a>
-<span class="sourceLineNo">366</span>     * Kerberos keytab file and principal.<a name="line.366"></a>
-<span class="sourceLineNo">367</span>     * @see User#login(org.apache.hadoop.conf.Configuration, String, String, String)<a name="line.367"></a>
-<span class="sourceLineNo">368</span>     *<a name="line.368"></a>
-<span class="sourceLineNo">369</span>     * @param conf the Configuration to use<a name="line.369"></a>
-<span class="sourceLineNo">370</span>     * @param fileConfKey Configuration property key used to store the path<a name="line.370"></a>
-<span class="sourceLineNo">371</span>     * to the keytab file<a name="line.371"></a>
-<span class="sourceLineNo">372</span>     * @param principalConfKey Configuration property key used to store the<a name="line.372"></a>
-<span class="sourceLineNo">373</span>     * principal name to login as<a name="line.373"></a>
-<span class="sourceLineNo">374</span>     * @param localhost the local hostname<a name="line.374"></a>
-<span class="sourceLineNo">375</span>     */<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    public static void login(Configuration conf, String fileConfKey,<a name="line.376"></a>
-<span class="sourceLineNo">377</span>        String principalConfKey, String localhost) throws IOException {<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      if (isSecurityEnabled()) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>        SecurityUtil.login(conf, fileConfKey, principalConfKey, localhost);<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      }<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span>    /**<a name="line.383"></a>
-<span class="sourceLineNo">384</span>     * Login through configured keytab and pricipal.<a name="line.384"></a>
-<span class="sourceLineNo">385</span>     * @param keytabLocation location of keytab<a name="line.385"></a>
-<span class="sourceLineNo">386</span>     * @param principalName principal in keytab<a name="line.386"></a>
-<span class="sourceLineNo">387</span>     * @throws IOException exception from UserGroupInformation.loginUserFromKeytab<a name="line.387"></a>
-<span class="sourceLineNo">388</span>     */<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    public static void login(String keytabLocation, String principalName)<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        throws IOException {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      if (isSecurityEnabled()) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span>        UserGroupInformation.loginUserFromKeytab(principalName, keytabLocation);<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
-<span class="sourceLineNo">395</span><a name="line.395"></a>
-<span class="sourceLineNo">396</span>    /**<a name="line.396"></a>
-<span class="sourceLineNo">397</span>     * Returns the result of {@code UserGroupInformation.isSecurityEnabled()}.<a name="line.397"></a>
-<span class="sourceLineNo">398</span>     */<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    public static boolean isSecurityEnabled() {<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      return UserGroupInformation.isSecurityEnabled();<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  }<a name="line.402"></a>
-<span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>  public static class TestingGroups extends Groups {<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    public static final String TEST_CONF = "hbase.group.service.for.test.only";<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>    private final Map&lt;String, List&lt;String&gt;&gt; userToGroupsMapping = new HashMap&lt;&gt;();<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    private Groups underlyingImplementation;<a name="line.408"></a>
-<span class="sourceLineNo">409</span><a name="line.409"></a>
-<span class="sourceLineNo">410</span>    public TestingGroups(Groups underlyingImplementation) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      super(new Configuration());<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      this.underlyingImplementation = underlyingImplementation;<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    }<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>    @Override<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    public List&lt;String&gt; getGroups(String user) throws IOException {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      List&lt;String&gt; result = userToGroupsMapping.get(user);<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>      if (result == null) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        result = underlyingImplementation.getGroups(user);<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      }<a name="line.421"></a>
-<span class="sourceLineNo">422</span><a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return result;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    }<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>    private void setUserGroups(String user, String[] groups) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      userToGroupsMapping.put(user, Arrays.asList(groups));<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    }<a name="line.428"></a>
-<span class="sourceLineNo">429</span>  }<a name="line.429"></a>
-<span class="sourceLineNo">430</span>}<a name="line.430"></a>
+<span class="sourceLineNo">354</span>        if (!(UserProvider.groups instanceof TestingGroups)) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          UserProvider.groups = new TestingGroups(UserProvider.groups);<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>      ((TestingGroups)UserProvider.groups).setUserGroups(name, groups);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      return new SecureHadoopUser(UserGroupInformation.createUserForTesting(name, groups));<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>    /**<a name="line.363"></a>
+<span class="sourceLineNo">364</span>     * Obtain credentials for the current process using the configured<a name="line.364"></a>
+<span class="sourceLineNo">365</span>     * Kerberos keytab file and principal.<a name="line.365"></a>
+<span class="sourceLineNo">366</span>     * @see User#login(org.apache.hadoop.conf.Configuration, String, String, String)<a name="line.366"></a>
+<span class="sourceLineNo">367</span>     *<a name="line.367"></a>
+<span class="sourceLineNo">368</span>     * @param conf the Configuration to use<a name="line.368"></a>
+<span class="sourceLineNo">369</span>     * @param fileConfKey Configuration property key used to store the path<a name="line.369"></a>
+<span class="sourceLineNo">370</span>     * to the keytab file<a name="line.370"></a>
+<span class="sourceLineNo">371</span>     * @param principalConfKey Configuration property key used to store the<a name="line.371"></a>
+<span class="sourceLineNo">372</span>     * principal name to login as<a name="line.372"></a>
+<span class="sourceLineNo">373</span>     * @param localhost the local hostname<a name="line.373"></a>
+<span class="sourceLineNo">374</span>     */<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    public static void login(Configuration conf, String fileConfKey,<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        String principalConfKey, String localhost) throws IOException {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      if (isSecurityEnabled()) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        SecurityUtil.login(conf, fileConfKey, principalConfKey, localhost);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      }<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>    /**<a name="line.382"></a>
+<span class="sourceLineNo">383</span>     * Login through configured keytab and pricipal.<a name="line.383"></a>
+<span class="sourceLineNo">384</span>     * @param keytabLocation location of keytab<a name="line.384"></a>
+<span class="sourceLineNo">385</span>     * @param principalName principal in keytab<a name="line.385"></a>
+<span class="sourceLineNo">386</span>     * @throws IOException exception from UserGroupInformation.loginUserFromKeytab<a name="line.386"></a>
+<span class="sourceLineNo">387</span>     */<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    public static void login(String keytabLocation, String principalName)<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        throws IOException {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      if (isSecurityEnabled()) {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        UserGroupInformation.loginUserFromKeytab(principalName, keytabLocation);<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      }<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    }<a name="line.393"></a>
+<span class="sourceLineNo">394</span><a name="line.394"></a>
+<span class="sourceLineNo">395</span>    /**<a name="line.395"></a>
+<span class="sourceLineNo">396</span>     * Returns the result of {@code UserGroupInformation.isSecurityEnabled()}.<a name="line.396"></a>
+<span class="sourceLineNo">397</span>     */<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    public static boolean isSecurityEnabled() {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>      return UserGroupInformation.isSecurityEnabled();<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    }<a name="line.400"></a>
+<span class="sourceLineNo">401</span>  }<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>  public static class TestingGroups extends Groups {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    public static final String TEST_CONF = "hbase.group.service.for.test.only";<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>    private final Map&lt;String, List&lt;String&gt;&gt; userToGroupsMapping = new HashMap&lt;&gt;();<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    private Groups underlyingImplementation;<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>    public TestingGroups(Groups underlyingImplementation) {<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      super(new Configuration());<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      this.underlyingImplementation = underlyingImplementation;<a name="line.411"></a>
+<span class="sourceLineNo">412</span>    }<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>    @Override<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    public List&lt;String&gt; getGroups(String user) throws IOException {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      List&lt;String&gt; result = userToGroupsMapping.get(user);<a name="line.416"></a>
+<span class="sourceLineNo">417</span><a name="line.417"></a>
+<span class="sourceLineNo">418</span>      if (result == null) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        result = underlyingImplementation.getGroups(user);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      }<a name="line.420"></a>
+<span class="sourceLineNo">421</span><a name="line.421"></a>
+<span class="sourceLineNo">422</span>      return result;<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>    private void setUserGroups(String user, String[] groups) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      userToGroupsMapping.put(user, Arrays.asList(groups));<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    }<a name="line.427"></a>
+<span class="sourceLineNo">428</span>  }<a name="line.428"></a>
+<span class="sourceLineNo">429</span>}<a name="line.429"></a>
 
 
 
diff --git a/downloads.html b/downloads.html
index f171eb6..edcbb18 100644
--- a/downloads.html
+++ b/downloads.html
@@ -426,7 +426,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/export_control.html b/export_control.html
index 1fcc83e..4e302fd 100644
--- a/export_control.html
+++ b/export_control.html
@@ -185,7 +185,7 @@ for more details.</p>
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/index.html b/index.html
index 6a04d3d..300198e 100644
--- a/index.html
+++ b/index.html
@@ -263,7 +263,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/issue-management.html b/issue-management.html
index 5d070a2..7767690 100644
--- a/issue-management.html
+++ b/issue-management.html
@@ -157,7 +157,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/licenses.html b/licenses.html
index 3b93bbd..3628243 100644
--- a/licenses.html
+++ b/licenses.html
@@ -360,7 +360,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/mailing-lists.html b/mailing-lists.html
index 8ebf26d..4987f4a 100644
--- a/mailing-lists.html
+++ b/mailing-lists.html
@@ -203,7 +203,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/metrics.html b/metrics.html
index 334b4f7..ba5f32f 100644
--- a/metrics.html
+++ b/metrics.html
@@ -313,7 +313,7 @@ export HBASE_REGIONSERVER_OPTS=&quot;$HBASE_JMX_OPTS -Dcom.sun.management.jmxrem
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/old_news.html b/old_news.html
index c7bb304..c8a204e 100644
--- a/old_news.html
+++ b/old_news.html
@@ -304,7 +304,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/plugin-management.html b/plugin-management.html
index 5b5788c..1c735ea 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -309,7 +309,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/plugins.html b/plugins.html
index c9e3714..fa36d36 100644
--- a/plugins.html
+++ b/plugins.html
@@ -236,7 +236,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 8fa3398..3a76df1 100644
--- a/poweredbyhbase.html
+++ b/poweredbyhbase.html
@@ -638,7 +638,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/project-info.html b/project-info.html
index 5daf8a7..23be081 100644
--- a/project-info.html
+++ b/project-info.html
@@ -201,7 +201,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/project-reports.html b/project-reports.html
index 657bc05..42b4a6a 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -174,7 +174,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index cca0aeb..c1e5778 100644
--- a/pseudo-distributed.html
+++ b/pseudo-distributed.html
@@ -162,7 +162,7 @@ Running Apache HBase (TM) in pseudo-distributed mode
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/replication.html b/replication.html
index 2935d4e..8819354 100644
--- a/replication.html
+++ b/replication.html
@@ -157,7 +157,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/resources.html b/resources.html
index 124a6c2..487a27c 100644
--- a/resources.html
+++ b/resources.html
@@ -185,7 +185,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/scm.html b/scm.html
index 1e8fe12..ce04c07 100644
--- a/scm.html
+++ b/scm.html
@@ -168,7 +168,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/sponsors.html b/sponsors.html
index 4501805..4da88eb 100644
--- a/sponsors.html
+++ b/sponsors.html
@@ -187,7 +187,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/summary.html b/summary.html
index 2b134d4..d961d6c 100644
--- a/summary.html
+++ b/summary.html
@@ -200,7 +200,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/supportingprojects.html b/supportingprojects.html
index 15d100b..ca1a261 100644
--- a/supportingprojects.html
+++ b/supportingprojects.html
@@ -378,7 +378,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/team.html b/team.html
index 10148c5..931e256 100644
--- a/team.html
+++ b/team.html
@@ -737,7 +737,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2022
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-16</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2022-01-18</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>