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

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


The following commit(s) were added to refs/heads/branch-2 by this push:
     new ba4f01c46b0 HBASE-27802 Manage static javascript resources 
programatically (#7033)
ba4f01c46b0 is described below

commit ba4f01c46b090458aa124580dcf6869493a1efd7
Author: Dávid Paksy <[email protected]>
AuthorDate: Tue May 27 12:42:35 2025 +0200

    HBASE-27802 Manage static javascript resources programatically (#7033)
    
    * HBASE-27802 Manage static javascript resources programatically (#6864)
    
    Signed-off-by: Nick Dimiduk <[email protected]>
    Signed-off-by: Nihal Jain <[email protected]>
    (cherry picked from commit 2f9d9fcd906c30abf30da1b5a78eae948e901e30)
    
    * HBASE-27802 Manage static javascript resources programatically (addendum: 
Fix not working popovers on UI)
    
    Popovers were not working on the UI and the following JS error was logged 
to browser console:
    
    ```
    Uncaught TypeError: i.createPopper is not a function
    ```
    
    This is because popper.js was not available on the page for Bootstrap.
    
    Solution: We use bootstrap.bundle.min.js instead which includes both 
popper.js and Bootstrap.
    
    ---------
    
    Signed-off-by: Nick Dimiduk <[email protected]>
    Signed-off-by: Nihal Jain <[email protected]>
---
 hbase-rest/pom.xml                                 |   4 +-
 .../main/resources/hbase-webapps/rest/footer.jsp   |   2 +-
 hbase-server/pom.xml                               | 104 +++++++++++++++++++++
 .../hbase/tmpl/master/MasterStatusTmpl.jamon       |   2 +-
 .../hbase/tmpl/master/RegionVisualizerTmpl.jamon   |   6 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.jamon     |   2 +-
 .../hadoop/hbase/tmpl/tool/CanaryStatusTmpl.jamon  |   2 +-
 .../resources/hbase-webapps/master/scripts.jsp     |   2 +-
 .../hbase-webapps/regionserver/footer.jsp          |   2 +-
 .../hbase-webapps/static/css/bootstrap.min.css     |   6 --
 .../hbase-webapps/static/js/bootstrap.min.js       |   7 --
 .../hbase-webapps/static/js/jquery.min.js          |   2 -
 .../static/js/jquery.tablesorter.min.js            |   4 -
 .../static/js/parser-date-iso8601.min.js           |   4 -
 .../static/js/[email protected]             |   7 --
 .../static/js/[email protected]              |   2 -
 .../hbase-webapps/static/js/[email protected]     |   2 -
 hbase-thrift/pom.xml                               |   4 +-
 .../main/resources/hbase-webapps/thrift/footer.jsp |   2 +-
 pom.xml                                            |   8 ++
 20 files changed, 126 insertions(+), 48 deletions(-)

diff --git a/hbase-rest/pom.xml b/hbase-rest/pom.xml
index f5d07da0577..7bd7b188cc3 100644
--- a/hbase-rest/pom.xml
+++ b/hbase-rest/pom.xml
@@ -280,7 +280,7 @@
           <skipAssembly>true</skipAssembly>
         </configuration>
       </plugin>
-      <!-- Copy the static web resources (JS, CSS, images, etc.) from 
hbase-server sources -->
+      <!-- Copy the static web resources (JS, CSS, images, etc.) from 
hbase-server -->
       <plugin>
         <artifactId>maven-resources-plugin</artifactId>
         <executions>
@@ -296,7 +296,7 @@
               <overwrite>true</overwrite>
               <resources>
                 <resource>
-                  
<directory>../hbase-server/src/main/resources/hbase-webapps/static</directory>
+                  
<directory>../hbase-server/target/hbase-webapps/static</directory>
                 </resource>
               </resources>
             </configuration>
diff --git a/hbase-rest/src/main/resources/hbase-webapps/rest/footer.jsp 
b/hbase-rest/src/main/resources/hbase-webapps/rest/footer.jsp
index 1f17eecf3f3..6938694a492 100644
--- a/hbase-rest/src/main/resources/hbase-webapps/rest/footer.jsp
+++ b/hbase-rest/src/main/resources/hbase-webapps/rest/footer.jsp
@@ -19,7 +19,7 @@
 --%>
 
     <script src="/static/js/jquery.min.js" type="text/javascript"></script>
-    <script src="/static/js/bootstrap.min.js" type="text/javascript"></script>
+    <script src="/static/js/bootstrap.bundle.min.js" 
type="text/javascript"></script>
     <script src="/static/js/tab.js" type="text/javascript"></script>
     <script type="text/javascript">
       $(document).ready(function() {
diff --git a/hbase-server/pom.xml b/hbase-server/pom.xml
index e303ec1ada6..307264a63f6 100644
--- a/hbase-server/pom.xml
+++ b/hbase-server/pom.xml
@@ -893,7 +893,9 @@
       <build>
         <plugins>
           <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-dependency-plugin</artifactId>
+            <version>${maven.dependency.version}</version>
             <executions>
               <execution>
                 <id>create-mrapp-generated-classpath</id>
@@ -909,6 +911,108 @@
                   
<outputFile>${project.build.directory}/test-classes/mrapp-generated-classpath</outputFile>
                 </configuration>
               </execution>
+              <execution>
+                <id>unpack-ui-resources-js</id>
+                <goals>
+                  <goal>unpack</goal>
+                </goals>
+                <phase>process-resources</phase>
+                <configuration>
+                  <artifactItems>
+                    <artifactItem>
+                      <groupId>org.webjars</groupId>
+                      <artifactId>bootstrap</artifactId>
+                      <version>${bootstrap.version}</version>
+                      <type>jar</type>
+                      <overWrite>true</overWrite>
+                      <includes>**/js/bootstrap.bundle.min.js</includes>
+                      <fileMappers>
+                        <fileMapper 
implementation="org.codehaus.plexus.components.io.filemappers.FlattenFileMapper"/>
+                      </fileMappers>
+                    </artifactItem>
+                    <artifactItem>
+                      <groupId>org.webjars</groupId>
+                      <artifactId>jquery</artifactId>
+                      <version>${jquery.version}</version>
+                      <type>jar</type>
+                      <overWrite>true</overWrite>
+                      <includes>**/jquery.min.js</includes>
+                      <fileMappers>
+                        <fileMapper 
implementation="org.codehaus.plexus.components.io.filemappers.FlattenFileMapper"/>
+                      </fileMappers>
+                    </artifactItem>
+                    <artifactItem>
+                      <groupId>org.webjars</groupId>
+                      <artifactId>tablesorter</artifactId>
+                      <version>${tablesorter.version}</version>
+                      <type>jar</type>
+                      <overWrite>true</overWrite>
+                      <includes>**/jquery.tablesorter.min.js,
+                        **/parsers/parser-date-iso8601.min.js</includes>
+                      <fileMappers>
+                        <fileMapper 
implementation="org.codehaus.plexus.components.io.filemappers.FlattenFileMapper"/>
+                      </fileMappers>
+                    </artifactItem>
+                    <artifactItem>
+                      <groupId>org.webjars</groupId>
+                      <artifactId>vega</artifactId>
+                      <version>${vega.version}</version>
+                      <type>jar</type>
+                      <overWrite>true</overWrite>
+                      <includes>**/vega.min.js</includes>
+                      <fileMappers>
+                        <fileMapper 
implementation="org.codehaus.plexus.components.io.filemappers.FlattenFileMapper"/>
+                      </fileMappers>
+                    </artifactItem>
+                    <artifactItem>
+                      <groupId>org.webjars</groupId>
+                      <artifactId>vega-embed</artifactId>
+                      <version>${vega-embed.version}</version>
+                      <type>jar</type>
+                      <overWrite>true</overWrite>
+                      <includes>**/vega-embed.min.js</includes>
+                      <fileMappers>
+                        <fileMapper 
implementation="org.codehaus.plexus.components.io.filemappers.FlattenFileMapper"/>
+                      </fileMappers>
+                    </artifactItem>
+                    <artifactItem>
+                      <groupId>org.webjars</groupId>
+                      <artifactId>vega-lite</artifactId>
+                      <version>${vega-lite.version}</version>
+                      <type>jar</type>
+                      <overWrite>true</overWrite>
+                      <includes>**/vega-lite.min.js</includes>
+                      <fileMappers>
+                        <fileMapper 
implementation="org.codehaus.plexus.components.io.filemappers.FlattenFileMapper"/>
+                      </fileMappers>
+                    </artifactItem>
+                  </artifactItems>
+                  
<outputDirectory>${project.build.directory}/hbase-webapps/static/js</outputDirectory>
+                </configuration>
+              </execution>
+              <execution>
+                <id>unpack-ui-resources-css</id>
+                <goals>
+                  <goal>unpack</goal>
+                </goals>
+                <phase>process-resources</phase>
+                <configuration>
+                  <artifactItems>
+                    <artifactItem>
+                      <groupId>org.webjars</groupId>
+                      <artifactId>bootstrap</artifactId>
+                      <version>${bootstrap.version}</version>
+                      <type>jar</type>
+                      <overWrite>true</overWrite>
+                      <includes>**/css/bootstrap.min.css</includes>
+                      <fileMappers>
+                        <fileMapper 
implementation="org.codehaus.plexus.components.io.filemappers.FlattenFileMapper"/>
+                      </fileMappers>
+                    </artifactItem>
+                  </artifactItems>
+                  
<outputDirectory>${project.build.directory}/hbase-webapps/static/css</outputDirectory>
+                </configuration>
+              </execution>
             </executions>
           </plugin>
         </plugins>
diff --git 
a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
 
b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
index 722f32ca3b8..d1b3f8719d2 100644
--- 
a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
+++ 
b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon
@@ -442,7 +442,7 @@ AssignmentManager assignmentManager = 
master.getAssignmentManager();
     <script src="/static/js/jquery.min.js" type="text/javascript"></script>
     <script src="/static/js/jquery.tablesorter.min.js" 
type="text/javascript"></script>
     <script src="/static/js/parser-date-iso8601.min.js" 
type="text/javascript"></script>
-    <script src="/static/js/bootstrap.min.js" type="text/javascript"></script>
+    <script src="/static/js/bootstrap.bundle.min.js" 
type="text/javascript"></script>
     <script src="/static/js/tab.js" type="text/javascript"></script>
     <script src="/static/js/jqSpager.js" type="text/javascript"></script>
     <script>
diff --git 
a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/RegionVisualizerTmpl.jamon
 
b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/RegionVisualizerTmpl.jamon
index 0b7b0c081ca..9a98cfefed7 100644
--- 
a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/RegionVisualizerTmpl.jamon
+++ 
b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/RegionVisualizerTmpl.jamon
@@ -17,9 +17,9 @@ See the License for the specific language governing 
permissions and
 limitations under the License.
 </%doc>
 
-    <script type="text/javascript" 
src="/static/js/[email protected]"></script>
-    <script type="text/javascript" 
src="/static/js/[email protected]"></script>
-    <script type="text/javascript" 
src="/static/js/[email protected]"></script>
+    <script type="text/javascript" src="/static/js/vega.min.js"></script>
+    <script type="text/javascript" src="/static/js/vega-lite.min.js"></script>
+    <script type="text/javascript" src="/static/js/vega-embed.min.js"></script>
 
     <div id="vis" style="width:80%;"></div>
     <script type="text/javascript">
diff --git 
a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.jamon
 
b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.jamon
index 5e05355d1d3..4b8047b9e44 100644
--- 
a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.jamon
+++ 
b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.jamon
@@ -256,7 +256,7 @@ org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;
 </div>
 <script src="/static/js/jquery.min.js" type="text/javascript"></script>
 <script src="/static/js/jquery.tablesorter.min.js" 
type="text/javascript"></script>
-<script src="/static/js/bootstrap.min.js" type="text/javascript"></script>
+<script src="/static/js/bootstrap.bundle.min.js" 
type="text/javascript"></script>
 <script src="/static/js/tab.js" type="text/javascript"></script>
 <script>
 $(document).ready(function()
diff --git 
a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/tool/CanaryStatusTmpl.jamon
 
b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/tool/CanaryStatusTmpl.jamon
index 8d1c5746467..031f3445518 100644
--- 
a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/tool/CanaryStatusTmpl.jamon
+++ 
b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/tool/CanaryStatusTmpl.jamon
@@ -136,7 +136,7 @@ org.apache.hadoop.hbase.util.JvmVersion;
     </div> <!-- /container -->
 
     <script src="/static/js/jquery.min.js" type="text/javascript"></script>
-    <script src="/static/js/bootstrap.min.js" type="text/javascript"></script>
+    <script src="/static/js/bootstrap.bundle.min.js" 
type="text/javascript"></script>
     <script src="/static/js/tab.js" type="text/javascript"></script>
   </body>
 </html>
diff --git a/hbase-server/src/main/resources/hbase-webapps/master/scripts.jsp 
b/hbase-server/src/main/resources/hbase-webapps/master/scripts.jsp
index 1e9031f77eb..d987621a119 100644
--- a/hbase-server/src/main/resources/hbase-webapps/master/scripts.jsp
+++ b/hbase-server/src/main/resources/hbase-webapps/master/scripts.jsp
@@ -18,7 +18,7 @@
 */
 --%>
     <script src="/static/js/jquery.min.js" type="text/javascript"></script>
-    <script src="/static/js/bootstrap.min.js" type="text/javascript"></script>
+    <script src="/static/js/bootstrap.bundle.min.js" 
type="text/javascript"></script>
     <script src="/static/js/tab.js" type="text/javascript"></script>
     <script type="text/javascript">
       $(document).ready(function() {
diff --git 
a/hbase-server/src/main/resources/hbase-webapps/regionserver/footer.jsp 
b/hbase-server/src/main/resources/hbase-webapps/regionserver/footer.jsp
index 6a0ac444e3b..02a36e9c23f 100644
--- a/hbase-server/src/main/resources/hbase-webapps/regionserver/footer.jsp
+++ b/hbase-server/src/main/resources/hbase-webapps/regionserver/footer.jsp
@@ -18,7 +18,7 @@
 */
 --%>
     <script src="/static/js/jquery.min.js" type="text/javascript"></script>
-    <script src="/static/js/bootstrap.min.js" type="text/javascript"></script>
+    <script src="/static/js/bootstrap.bundle.min.js" 
type="text/javascript"></script>
     <script src="/static/js/tab.js" type="text/javascript"></script>
     <script type="text/javascript">
       $(document).ready(function() {
diff --git 
a/hbase-server/src/main/resources/hbase-webapps/static/css/bootstrap.min.css 
b/hbase-server/src/main/resources/hbase-webapps/static/css/bootstrap.min.css
deleted file mode 100644
index 46dc7faa2e9..00000000000
--- a/hbase-server/src/main/resources/hbase-webapps/static/css/bootstrap.min.css
+++ /dev/null
@@ -1,6 +0,0 @@
-@charset "UTF-8";/*!
- * Bootstrap  v5.3.3 (https://getbootstrap.com/)
- * Copyright 2011-2024 The Bootstrap Authors
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
- 
*/:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--
 [...]
-/*# sourceMappingURL=bootstrap.min.css.map */
diff --git 
a/hbase-server/src/main/resources/hbase-webapps/static/js/bootstrap.min.js 
b/hbase-server/src/main/resources/hbase-webapps/static/js/bootstrap.min.js
deleted file mode 100644
index d705b8dac58..00000000000
--- a/hbase-server/src/main/resources/hbase-webapps/static/js/bootstrap.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
-  * Bootstrap v5.3.3 (https://getbootstrap.com/)
-  * Copyright 2011-2024 The Bootstrap Authors 
(https://github.com/twbs/bootstrap/graphs/contributors)
-  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
-  */
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof 
module?module.exports=e():"function"==typeof 
define&&define.amd?define(e):(t="undefined"!=typeof 
globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use 
strict";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const 
s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't 
allow more than one instance per element. Bound instance: 
${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e). [...]
-//# sourceMappingURL=bootstrap.bundle.min.js.map
diff --git 
a/hbase-server/src/main/resources/hbase-webapps/static/js/jquery.min.js 
b/hbase-server/src/main/resources/hbase-webapps/static/js/jquery.min.js
deleted file mode 100644
index b0614034ad3..00000000000
--- a/hbase-server/src/main/resources/hbase-webapps/static/js/jquery.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | 
jquery.org/license */
-!function(e,t){"use strict";"object"==typeof module&&"object"==typeof 
module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw
 new Error("jQuery requires a window with a document");return 
t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use 
strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return 
t.flat.call(e)}:function(e){return 
t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=
 [...]
diff --git 
a/hbase-server/src/main/resources/hbase-webapps/static/js/jquery.tablesorter.min.js
 
b/hbase-server/src/main/resources/hbase-webapps/static/js/jquery.tablesorter.min.js
deleted file mode 100644
index 427e3288225..00000000000
--- 
a/hbase-server/src/main/resources/hbase-webapps/static/js/jquery.tablesorter.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-(function(factory){if (typeof define === 'function' && 
define.amd){define(['jquery'], factory);} else if (typeof module === 'object' 
&& typeof module.exports === 'object'){module.exports = 
factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
-
-/*! tablesorter (FORK) - updated 2020-03-03 (v2.31.3)*/
-!function(e){"function"==typeof 
define&&define.amd?define(["jquery"],e):"object"==typeof 
module&&"object"==typeof 
module.exports?module.exports=e(require("jquery")):e(jQuery)}(function(e){return
 function(R){"use strict";var 
T=R.tablesorter={version:"2.31.3",parsers:[],widgets:[],defaults:{theme:"default",widthFixed:!1,showProcessing:!1,headerTemplate:"{content}",onRenderTemplate:null,onRenderHeader:null,cancelSelection:!0,tabIndex:!0,dateFormat:"mmddyyyy",sortMultiSortKey:"shiftKey",sort
 [...]
diff --git 
a/hbase-server/src/main/resources/hbase-webapps/static/js/parser-date-iso8601.min.js
 
b/hbase-server/src/main/resources/hbase-webapps/static/js/parser-date-iso8601.min.js
deleted file mode 100644
index fe116cb92d2..00000000000
--- 
a/hbase-server/src/main/resources/hbase-webapps/static/js/parser-date-iso8601.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-(function(factory){if (typeof define === 'function' && 
define.amd){define(['jquery'], factory);} else if (typeof module === 'object' 
&& typeof module.exports === 'object'){module.exports = 
factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){
-
-/*! Parser: ISO-8601 date - updated 10/26/2014 (v2.18.0) */
-!function(e){"use strict";var 
s=/^([0-9]{4})(-([0-9]{2})(-([0-9]{2})(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?$/;e.tablesorter.addParser({id:"iso8601date",is:function(e){return!!e&&e.match(s)},format:function(e){var
 t=e?e.match(s):e;if(t){var r=new Date(t[1],0,1);return 
t[3]&&r.setMonth(t[3]-1),t[5]&&r.setDate(t[5]),t[7]&&r.setHours(t[7]),t[8]&&r.setMinutes(t[8]),t[10]&&r.setSeconds(t[10]),t[12]&&r.setMilliseconds(1e3*Number("0."+t[12])),r.
 [...]
diff --git 
a/hbase-server/src/main/resources/hbase-webapps/static/js/[email protected]
 
b/hbase-server/src/main/resources/hbase-webapps/static/js/[email protected]
deleted file mode 100644
index 8ae62235ac4..00000000000
--- 
a/hbase-server/src/main/resources/hbase-webapps/static/js/[email protected]
+++ /dev/null
@@ -1,7 +0,0 @@
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof 
module?module.exports=t(require("vega"),require("vega-lite")):"function"==typeof
 define&&define.amd?define(["vega","vega-lite"],t):(e="undefined"!=typeof 
globalThis?globalThis:e||self).vegaEmbed=t(e.vega,e.vegaLite)}(this,(function(e,t){"use
 strict";function n(e){var t=Object.create(null);return 
e&&Object.keys(e).forEach((function(n){if("default"!==n){var 
r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r: [...]
-/*!
-     * https://github.com/Starcounter-Jack/JSON-Patch
-     * (c) 2017-2021 Joachim Wester
-     * MIT license
-     */function S(e,t){void 0===t&&(t=!1);var 
n=$.get(e.object);C(n.value,e.object,e.patches,"",t),e.patches.length&&A(n.value,e.patches);var
 r=e.patches;return 
r.length>0&&(e.patches=[],e.callback&&e.callback(r)),r}function 
C(e,t,n,r,i){if(t!==e){"function"==typeof t.toJSON&&(t=t.toJSON());for(var 
o=c(t),a=c(e),s=!1,d=a.length-1;d>=0;d--){var u=e[g=a[d]];if(!l(t,g)||void 
0===t[g]&&void 
0!==u&&!1===Array.isArray(t))Array.isArray(e)===Array.isArray(t)?(i&&n.push({op:"test",path:r+"/"+p(g)
 [...]
-//# sourceMappingURL=vega-embed.min.js.map
diff --git 
a/hbase-server/src/main/resources/hbase-webapps/static/js/[email protected]
 
b/hbase-server/src/main/resources/hbase-webapps/static/js/[email protected]
deleted file mode 100644
index 31b00323e15..00000000000
--- 
a/hbase-server/src/main/resources/hbase-webapps/static/js/[email protected]
+++ /dev/null
@@ -1,2 +0,0 @@
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof 
module?t(exports,require("vega")):"function"==typeof 
define&&define.amd?define(["exports","vega"],t):t((e="undefined"!=typeof 
globalThis?globalThis:e||self).vegaLite={},e.vega)}(this,(function(e,t){"use 
strict";var n="5.23.0";function i(e){return J(e,"or")}function r(e){return 
J(e,"and")}function o(e){return J(e,"not")}function 
a(e,t){if(o(e))a(e.not,t);else if(r(e))for(const n of e.and)a(n,t);else 
if(i(e))for(const n of e.or)a [...]
-//# sourceMappingURL=vega-lite.min.js.map
diff --git 
a/hbase-server/src/main/resources/hbase-webapps/static/js/[email protected] 
b/hbase-server/src/main/resources/hbase-webapps/static/js/[email protected]
deleted file mode 100644
index d776440000d..00000000000
--- a/hbase-server/src/main/resources/hbase-webapps/static/js/[email protected]
+++ /dev/null
@@ -1,2 +0,0 @@
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof 
module?e(exports):"function"==typeof 
define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof 
globalThis?globalThis:t||self).vega={})}(this,(function(t){"use 
strict";function e(t,e,n){return t.fields=e||[],t.fname=n,t}function 
n(t){return null==t?null:t.fname}function r(t){return 
null==t?null:t.fields}function i(t){return 1===t.length?o(t[0]):a(t)}const 
o=t=>function(e){return e[t]},a=t=>{const e=t.length;return functi [...]
-//# sourceMappingURL=vega.min.js.map
diff --git a/hbase-thrift/pom.xml b/hbase-thrift/pom.xml
index 1db636fe201..ac9eda4d443 100644
--- a/hbase-thrift/pom.xml
+++ b/hbase-thrift/pom.xml
@@ -198,7 +198,7 @@
           <skipAssembly>true</skipAssembly>
         </configuration>
       </plugin>
-      <!-- Copy the static web resources (JS, CSS, images, etc.) from 
hbase-server sources -->
+      <!-- Copy the static web resources (JS, CSS, images, etc.) from 
hbase-server -->
       <plugin>
         <artifactId>maven-resources-plugin</artifactId>
         <executions>
@@ -214,7 +214,7 @@
               <overwrite>true</overwrite>
               <resources>
                 <resource>
-                  
<directory>../hbase-server/src/main/resources/hbase-webapps/static</directory>
+                  
<directory>../hbase-server/target/hbase-webapps/static</directory>
                 </resource>
               </resources>
             </configuration>
diff --git a/hbase-thrift/src/main/resources/hbase-webapps/thrift/footer.jsp 
b/hbase-thrift/src/main/resources/hbase-webapps/thrift/footer.jsp
index 6a0ac444e3b..02a36e9c23f 100644
--- a/hbase-thrift/src/main/resources/hbase-webapps/thrift/footer.jsp
+++ b/hbase-thrift/src/main/resources/hbase-webapps/thrift/footer.jsp
@@ -18,7 +18,7 @@
 */
 --%>
     <script src="/static/js/jquery.min.js" type="text/javascript"></script>
-    <script src="/static/js/bootstrap.min.js" type="text/javascript"></script>
+    <script src="/static/js/bootstrap.bundle.min.js" 
type="text/javascript"></script>
     <script src="/static/js/tab.js" type="text/javascript"></script>
     <script type="text/javascript">
       $(document).ready(function() {
diff --git a/pom.xml b/pom.xml
index 61b4fa8382e..d67dd08fabd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -648,6 +648,7 @@
     <maven.eclipse.version>2.10</maven.eclipse.version>
     <maven.gpg.version>3.0.1</maven.gpg.version>
     <maven.javadoc.version>3.4.0</maven.javadoc.version>
+    <maven.dependency.version>3.8.1</maven.dependency.version>
     <maven.warbucks.version>1.1.0</maven.warbucks.version>
     
<maven.project.info.report.version>3.1.2</maven.project.info.report.version>
     <maven-owasp-plugin.version>12.1.0</maven-owasp-plugin.version>
@@ -779,6 +780,13 @@
     <!-- Still need this to ignore some errors when building javadoc-->
     <doclint>none</doclint>
     <javax.activation.version>1.2.0</javax.activation.version>
+    <!-- Web UI dependencies -->
+    <bootstrap.version>5.3.3</bootstrap.version>
+    <jquery.version>3.7.1</jquery.version>
+    <tablesorter.version>2.32.0</tablesorter.version>
+    <vega.version>5.32.0</vega.version>
+    <vega-embed.version>6.29.0</vega-embed.version>
+    <vega-lite.version>5.23.0</vega-lite.version>
   </properties>
   <!-- Sorted by groups of dependencies then groupId and artifactId -->
   <dependencyManagement>

Reply via email to