Skip to content

HBASE-27802 Manage static javascript resources programatically - #7031

Merged
NihalJain merged 2 commits into
apache:branch-2.5from
PDavid:HBASE-27802-js-programatically-branch-2.5
May 27, 2025
Merged

HBASE-27802 Manage static javascript resources programatically#7031
NihalJain merged 2 commits into
apache:branch-2.5from
PDavid:HBASE-27802-js-programatically-branch-2.5

Conversation

@PDavid

Copy link
Copy Markdown
Contributor

As is

Currently, the static JavaScript, CSS resources need to be manually managed. That is, if any of these has to be updated, we will be required to download them from web and place them under the appropriate path. This can be cumbersome.

After

To be able to manage them with minimal manual effort we could manage them as part of build.

Approach

This solution is very similar to how we manage the websitestatic resources in our build: #6668

Download and extract the UI resources as webjars using the maven-dependency-plugin in our build. It will only copy the required files to the hbase-server/target/hbase-webapps/static directory.

The REST and Thrift projects copies the static JavaScript, CSS resources from hbase-server - as before.

This way the no new dependency is packaged into the application, only the required JS, CSS files are copied and packaged.

Upgrading in the future

From now on upgrading the static JavaScript, CSS resources means to:

Upgrades

Also upgraded the following static resources to current latest version:

  • jquery: 3.5.1 -> 3.7.1
  • tablesorter: 2.31.3 -> 2.32.0

PDavid added 2 commits May 22, 2025 17:42
…e#6864)
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Nihal Jain <nihaljain@apache.org>
(cherry picked from commit 2f9d9fc)
…dum: 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.
@PDavid

PDavid commented May 25, 2025

Copy link
Copy Markdown
ContributorAuthor

This is a backport of #6864 to branch-2.5. This PR already includes the addendum fix (#7018).

I cherry-picked the master commit and resolved the conflicts. The reason this patch was not applying clearly is that on master we have the website and the reference guide (asciidoc) building code but on other branches we don't.

@PDavid

Copy link
Copy Markdown
ContributorAuthor

I tested this backported patch the same way as I described here: #6864 (comment)

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec0m 46sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 1sNo case conflicting files found.
+0 🆗codespell0m 0scodespell was not available.
+0 🆗detsecrets0m 0sdetect-secrets was not available.
+0 🆗jshint0m 0sjshint was not available.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ branch-2.5 Compile Tests _
+0 🆗mvndep0m 19sMaven dependency ordering for branch
+1 💚mvninstall3m 21sbranch-2.5 passed
+1 💚compile5m 46sbranch-2.5 passed
+1 💚spotless0m 46sbranch has no errors when running spotless:check.
_ Patch Compile Tests _
+0 🆗mvndep0m 19sMaven dependency ordering for patch
+1 💚mvninstall3m 4sthe patch passed
+1 💚compile5m 44sthe patch passed
+1 💚javac5m 44sthe patch passed
+1 💚blanks0m 0sThe patch has no blanks issues.
+1 💚xmllint0m 0sNo new issues.
+1 💚hadoopcheck22m 34sPatch does not cause any errors with Hadoop 2.10.2 or 3.2.4 3.3.6 3.4.0.
+1 💚spotless0m 42spatch has no errors when running spotless:check.
_ Other Tests _
+1 💚asflicense0m 37sThe patch does not generate ASF License warnings.
45m 53s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7031/1/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#7031
Optional Testsdupname asflicense javac codespell detsecrets xmllint hadoopcheck spotless compile jshint
unameLinux b6f2af7dfdb5 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionbranch-2.5 / fd61e10
Default JavaEclipse Adoptium-11.0.23+9
Max. process+thread count79 (vs. ulimit of 30000)
modulesC: hbase-server hbase-thrift hbase-rest . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7031/1/console
versionsgit=2.34.1 maven=3.9.8 xmllint=20913
Powered byApache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec0m 48sDocker mode activated.
-0 ⚠️yetus0m 5sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck
_ Prechecks _
_ branch-2.5 Compile Tests _
+0 🆗mvndep0m 22sMaven dependency ordering for branch
+1 💚mvninstall3m 18sbranch-2.5 passed
+1 💚compile2m 15sbranch-2.5 passed
+1 💚javadoc3m 20sbranch-2.5 passed
+1 💚shadedjars6m 31sbranch has no errors when building our shaded downstream artifacts.
_ Patch Compile Tests _
+0 🆗mvndep0m 17sMaven dependency ordering for patch
+1 💚mvninstall3m 12sthe patch passed
+1 💚compile2m 18sthe patch passed
+1 💚javac2m 18sthe patch passed
-0 ⚠️javadoc2m 7s/results-javadoc-javadoc-root.txtroot generated 10 new + 82 unchanged - 10 fixed = 92 total (was 92)
+1 💚shadedjars6m 10spatch has no errors when building our shaded downstream artifacts.
_ Other Tests _
-1 ❌unit37m 40s/patch-unit-root.txtroot in the patch failed.
72m 39s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7031/1/artifact/yetus-jdk8-hadoop2-check/output/Dockerfile
GITHUB PR#7031
Optional Testsjavac javadoc unit shadedjars compile
unameLinux ad9b5b3778fe 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionbranch-2.5 / fd61e10
Default JavaTemurin-1.8.0_412-b08
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7031/1/testReport/
Max. process+thread count2323 (vs. ulimit of 30000)
modulesC: hbase-server hbase-thrift hbase-rest . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7031/1/console
versionsgit=2.34.1 maven=3.9.8
Powered byApache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec0m 45sDocker mode activated.
-0 ⚠️yetus0m 5sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck
_ Prechecks _
_ branch-2.5 Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for branch
+1 💚mvninstall3m 17sbranch-2.5 passed
+1 💚compile2m 9sbranch-2.5 passed
+1 💚javadoc2m 42sbranch-2.5 passed
+1 💚shadedjars6m 5sbranch has no errors when building our shaded downstream artifacts.
_ Patch Compile Tests _
+0 🆗mvndep0m 16sMaven dependency ordering for patch
+1 💚mvninstall3m 1sthe patch passed
+1 💚compile2m 7sthe patch passed
+1 💚javac2m 7sthe patch passed
+1 💚javadoc2m 36sthe patch passed
+1 💚shadedjars6m 1spatch has no errors when building our shaded downstream artifacts.
_ Other Tests _
+1 💚unit244m 47sroot in the patch passed.
280m 46s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7031/1/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR#7031
Optional Testsjavac javadoc unit shadedjars compile
unameLinux d44bd2c2beb5 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionbranch-2.5 / fd61e10
Default JavaEclipse Adoptium-17.0.11+9
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7031/1/testReport/
Max. process+thread count7995 (vs. ulimit of 30000)
modulesC: hbase-server hbase-thrift hbase-rest . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7031/1/console
versionsgit=2.34.1 maven=3.9.8
Powered byApache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec0m 54sDocker mode activated.
-0 ⚠️yetus0m 7sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck
_ Prechecks _
_ branch-2.5 Compile Tests _
+0 🆗mvndep0m 18sMaven dependency ordering for branch
+1 💚mvninstall4m 48sbranch-2.5 passed
+1 💚compile3m 11sbranch-2.5 passed
+1 💚javadoc4m 23sbranch-2.5 passed
+1 💚shadedjars7m 13sbranch has no errors when building our shaded downstream artifacts.
_ Patch Compile Tests _
+0 🆗mvndep0m 19sMaven dependency ordering for patch
+1 💚mvninstall4m 31sthe patch passed
+1 💚compile2m 56sthe patch passed
+1 💚javac2m 56sthe patch passed
+1 💚javadoc4m 1sthe patch passed
+1 💚shadedjars7m 24spatch has no errors when building our shaded downstream artifacts.
_ Other Tests _
-1 ❌unit373m 0s/patch-unit-root.txtroot in the patch failed.
461m 11s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7031/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#7031
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 62fca0cc4e5e 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionbranch-2.5 / fd61e10
Default JavaEclipse Adoptium-11.0.23+9
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7031/1/testReport/
Max. process+thread count7962 (vs. ulimit of 30000)
modulesC: hbase-server hbase-thrift hbase-rest . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7031/1/console
versionsgit=2.34.1 maven=3.9.8
Powered byApache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@PDavid

Copy link
Copy Markdown
ContributorAuthor

There were test failures in the PR build but to me those look unrelated.

@PDavid
PDavid marked this pull request as ready for review May 26, 2025 05:04
@NihalJain
NihalJain merged commit 676016d into apache:branch-2.5May 27, 2025
@PDavid
PDavid deleted the HBASE-27802-js-programatically-branch-2.5 branch May 27, 2025 13:09
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@PDavid@Apache-HBase@ndimiduk@NihalJain