Skip to content

HBASE-27802 Manage static javascript resources programatically #6864

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
May 21, 2025

Conversation

PDavid
Copy link
Contributor

@PDavid PDavid commented Mar 27, 2025

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
Copy link
Contributor Author

PDavid commented Mar 27, 2025

I tested this with starting HBase in standalone mode in dev mode (mvn clean install -DskipTests && bin/start-hbase.sh).

Master UI

image

Region Server UI

image

REST UI

image

image

Also built a package and tested the UI there as well.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@PDavid
Copy link
Contributor Author

PDavid commented Mar 27, 2025

I see that in the PR build some replication related tests failed. I think they are not related.

@PDavid PDavid marked this pull request as ready for review March 27, 2025 15:46
@PDavid
Copy link
Contributor Author

PDavid commented Mar 27, 2025

Hi @ndimiduk and @NihalJain,

What do you think about this approach?

@NihalJain
Copy link
Contributor

Hi @ndimiduk and @NihalJain,

What do you think about this approach?

Looks great to me, very clean. Easy to do a new upgrade going forward. Thanks for taking this up @PDavid.

@NihalJain
Copy link
Contributor

NihalJain commented Mar 27, 2025

Just one request, could you please verify these jars don't leak into our assembly and also double check on whether the js are not bundled with our server, rest, thrift jars i.e. HBASE-28921 Avoid bundling hbase-webapps folder in default jars still works.

@PDavid
Copy link
Contributor Author

PDavid commented Mar 28, 2025

Just one request, could you please verify these jars don't leak into our assembly and also double check on whether the js are not bundled with our server, rest, thrift jars i.e. HBASE-28921 Avoid bundling hbase-webapps folder in default jars still works.

Thanks, great idea, I'll do that.

@PDavid
Copy link
Contributor Author

PDavid commented Mar 31, 2025

Just one request, could you please verify these jars don't leak into our assembly and also double check on whether the js are not bundled with our server, rest, thrift jars i.e. HBASE-28921 Avoid bundling hbase-webapps folder in default jars still works.

Thanks, great idea, I'll do that.

@NihalJain OK, double-checked and no webjar is packaged into the tarball, also .js or .css file made it's way into the server, rest, thrift jars.

Built a binary tarball locally with the command:

$ mvn clean install -DskipTests -Prelease && mvn install -DskipTests site assembly:single -Prelease

List contents of the binary tarball:

$ tar --list -vf ./hbase-assembly/target/hbase-4.0.0-alpha-1-SNAPSHOT-bin.tar.gz | grep 'jar'
-rw-r--r-- root/root   1598784 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-client-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root   1739960 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jcodings-1.0.58.jar
-rw-r--r-- root/root    230217 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/joni-2.2.1.jar
-rw-r--r-- root/root      9603 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-openssl-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root   5652093 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-shaded-netty-tcnative-4.1.10.jar
-rw-r--r-- root/root   5847198 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-server-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root   1888023 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-shaded-protobuf-4.1.10.jar
-rw-r--r-- root/root   5226054 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-shaded-netty-4.1.10.jar
-rw-r--r-- root/root   4190926 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-shaded-miscellaneous-4.1.10.jar
-rw-r--r-- root/root     19401 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/error_prone_annotations-2.36.0.jar
-rw-r--r-- root/root    911768 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-common-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root     20402 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-unsafe-4.1.10.jar
-rw-r--r-- root/root    189675 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/commons-validator-1.7.jar
-rw-r--r-- root/root    196768 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/commons-digester-2.1.jar
-rw-r--r-- root/root    217668 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-procedure-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root    353793 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/commons-codec-1.15.jar
-rw-r--r-- root/root    576695 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/tomcat-jasper-9.0.93.jar
-rw-r--r-- root/root     89557 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/tomcat-el-api-9.0.93.jar
-rw-r--r-- root/root    173924 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/tomcat-jasper-el-9.0.93.jar
-rw-r--r-- root/root     53239 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/javax.servlet.jsp-api-2.3.1.jar
-rw-r--r-- root/root    880048 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/caffeine-2.8.1.jar
-rw-r--r-- root/root    204610 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/checker-qual-3.1.0.jar
-rw-r--r-- root/root    136454 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/metrics-core-3.2.6.jar
-rw-r--r-- root/root    538910 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/commons-io-2.18.0.jar
-rw-r--r-- root/root    503880 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/commons-lang3-3.9.jar
-rw-r--r-- root/root   2213560 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/commons-math3-3.6.1.jar
-rw-r--r-- root/root   1323991 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/zookeeper-3.8.4.jar
-rw-r--r-- root/root    254932 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/zookeeper-jute-3.8.4.jar
-rw-r--r-- root/root    580333 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-handler-4.1.119.Final.jar
-rw-r--r-- root/root    719224 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-common-4.1.119.Final.jar
-rw-r--r-- root/root     37841 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-resolver-4.1.119.Final.jar
-rw-r--r-- root/root    339044 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-buffer-4.1.119.Final.jar
-rw-r--r-- root/root    521425 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-transport-4.1.119.Final.jar
-rw-r--r-- root/root     44157 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-transport-native-unix-common-4.1.119.Final.jar
-rw-r--r-- root/root    355199 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-codec-4.1.119.Final.jar
-rw-r--r-- root/root      6196 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-transport-native-epoll-4.1.119.Final.jar
-rw-r--r-- root/root    147621 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-transport-classes-epoll-4.1.119.Final.jar
-rw-r--r-- root/root     24543 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jamon-runtime-2.4.1.jar
-rw-r--r-- root/root     95806 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/javax.servlet-api-3.1.0.jar
-rw-r--r-- root/root     84626 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/disruptor-3.4.4.jar
-rw-r--r-- root/root    166244 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/commons-crypto-1.1.0.jar
-rw-r--r-- root/root    163067 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hadoop-distcp-3.4.1.jar
-rw-r--r-- root/root   4695811 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hadoop-common-3.4.1.jar
-rw-r--r-- root/root   1952715 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hadoop-shaded-protobuf_3_25-1.3.0.jar
-rw-r--r-- root/root   3519517 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hadoop-shaded-guava-1.3.0.jar
-rw-r--r-- root/root   2747878 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/guava-27.0-jre.jar
-rw-r--r-- root/root      3727 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/failureaccess-1.0.jar
-rw-r--r-- root/root      2199 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
-rw-r--r-- root/root      8782 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/j2objc-annotations-1.1.jar
-rw-r--r-- root/root      3448 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/animal-sniffer-annotations-1.17.jar
-rw-r--r-- root/root    316431 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/commons-net-3.9.0.jar
-rw-r--r-- root/root    588337 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/commons-collections-3.2.2.jar
-rw-r--r-- root/root     44399 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jakarta.activation-api-1.2.1.jar
-rw-r--r-- root/root    736758 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jetty-server-9.4.53.v20231009.jar
-rw-r--r-- root/root    249062 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jetty-http-9.4.53.v20231009.jar
-rw-r--r-- root/root    183014 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jetty-io-9.4.53.v20231009.jar
-rw-r--r-- root/root    588870 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jetty-util-9.4.53.v20231009.jar
-rw-r--r-- root/root    146065 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jetty-servlet-9.4.53.v20231009.jar
-rw-r--r-- root/root    118497 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jetty-security-9.4.53.v20231009.jar
-rw-r--r-- root/root    140307 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jetty-webapp-9.4.53.v20231009.jar
-rw-r--r-- root/root     68896 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jetty-xml-9.4.53.v20231009.jar
-rw-r--r-- root/root    158890 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jersey-json-1.22.0.jar
-rw-r--r-- root/root    890168 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jaxb-impl-2.2.3-1.jar
-rw-r--r-- root/root    246918 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/commons-beanutils-1.9.4.jar
-rw-r--r-- root/root    657516 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/commons-configuration2-2.10.1.jar
-rw-r--r-- root/root    238400 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/commons-text-1.10.0.jar
-rw-r--r-- root/root    651391 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/avro-1.11.4.jar
-rw-r--r-- root/root    128414 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/re2j-1.1.jar
-rw-r--r-- root/root    249277 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/gson-2.9.0.jar
-rw-r--r-- root/root    282591 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jsch-0.1.55.jar
-rw-r--r-- root/root   3275189 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/curator-client-5.7.1.jar
-rw-r--r-- root/root    319782 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/curator-recipes-5.7.1.jar
-rw-r--r-- root/root   1079377 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/commons-compress-1.26.1.jar
-rw-r--r-- root/root    223129 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/kerb-core-2.0.3.jar
-rw-r--r-- root/root    200581 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/kerby-pkix-2.0.3.jar
-rw-r--r-- root/root    100095 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/kerby-asn1-2.0.3.jar
-rw-r--r-- root/root     40787 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/kerby-util-2.0.3.jar
-rw-r--r-- root/root    195909 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/stax2-api-4.2.1.jar
-rw-r--r-- root/root    522679 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/woodstox-core-5.4.0.jar
-rw-r--r-- root/root    583996 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/dnsjava-3.6.1.jar
-rw-r--r-- root/root   6365135 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hadoop-hdfs-3.4.1.jar
-rw-r--r-- root/root     66643 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jetty-util-ajax-9.4.53.v20231009.jar
-rw-r--r-- root/root     24239 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/commons-daemon-1.0.13.jar
-rw-r--r-- root/root      4554 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-all-4.1.119.Final.jar
-rw-r--r-- root/root     67189 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-codec-dns-4.1.119.Final.jar
-rw-r--r-- root/root     37790 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-codec-haproxy-4.1.119.Final.jar
-rw-r--r-- root/root    676321 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-codec-http-4.1.119.Final.jar
-rw-r--r-- root/root    491365 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-codec-http2-4.1.119.Final.jar
-rw-r--r-- root/root     44736 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-codec-memcache-4.1.119.Final.jar
-rw-r--r-- root/root    113701 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-codec-mqtt-4.1.119.Final.jar
-rw-r--r-- root/root     46014 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-codec-redis-4.1.119.Final.jar
-rw-r--r-- root/root     21344 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-codec-smtp-4.1.119.Final.jar
-rw-r--r-- root/root    121028 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-codec-socks-4.1.119.Final.jar
-rw-r--r-- root/root     34636 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-codec-stomp-4.1.119.Final.jar
-rw-r--r-- root/root     19823 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-codec-xml-4.1.119.Final.jar
-rw-r--r-- root/root     25651 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-handler-proxy-4.1.119.Final.jar
-rw-r--r-- root/root     26834 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-handler-ssl-ocsp-4.1.119.Final.jar
-rw-r--r-- root/root    188359 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-resolver-dns-4.1.119.Final.jar
-rw-r--r-- root/root     18242 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-transport-rxtx-4.1.119.Final.jar
-rw-r--r-- root/root     50813 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-transport-sctp-4.1.119.Final.jar
-rw-r--r-- root/root     32190 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-transport-udt-4.1.119.Final.jar
-rw-r--r-- root/root    108561 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-transport-classes-kqueue-4.1.119.Final.jar
-rw-r--r-- root/root      9144 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-resolver-dns-classes-macos-4.1.119.Final.jar
-rw-r--r-- root/root     40596 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-transport-native-epoll-4.1.119.Final-linux-x86_64.jar
-rw-r--r-- root/root     42285 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-transport-native-epoll-4.1.119.Final-linux-aarch_64.jar
-rw-r--r-- root/root     36630 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-transport-native-epoll-4.1.119.Final-linux-riscv64.jar
-rw-r--r-- root/root     25173 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-transport-native-kqueue-4.1.119.Final-osx-x86_64.jar
-rw-r--r-- root/root     25741 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-transport-native-kqueue-4.1.119.Final-osx-aarch_64.jar
-rw-r--r-- root/root     19629 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-resolver-dns-native-macos-4.1.119.Final-osx-x86_64.jar
-rw-r--r-- root/root     19828 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/netty-resolver-dns-native-macos-4.1.119.Final-osx-aarch_64.jar
-rw-r--r-- root/root   5551591 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hadoop-hdfs-client-3.4.1.jar
-rw-r--r-- root/root   1832290 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hadoop-mapreduce-client-core-3.4.1.jar
-rw-r--r-- root/root    317416 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hadoop-yarn-client-3.4.1.jar
-rw-r--r-- root/root     45602 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/websocket-client-9.4.53.v20231009.jar
-rw-r--r-- root/root    327897 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jetty-client-9.4.53.v20231009.jar
-rw-r--r-- root/root    214599 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/websocket-common-9.4.53.v20231009.jar
-rw-r--r-- root/root     52192 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/websocket-api-9.4.53.v20231009.jar
-rw-r--r-- root/root   3829043 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hadoop-yarn-api-3.4.1.jar
-rw-r--r-- root/root    707273 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jline-3.9.0.jar
-rw-r--r-- root/root   2529413 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hadoop-yarn-common-3.4.1.jar
-rw-r--r-- root/root    856934 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/guice-4.2.3.jar
-rw-r--r-- root/root      4467 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/aopalliance-1.0.jar
-rw-r--r-- root/root     16433 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jackson-jaxrs-json-provider-2.12.7.jar
-rw-r--r-- root/root     35847 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jackson-jaxrs-base-2.12.7.jar
-rw-r--r-- root/root     81553 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/guice-servlet-4.2.3.jar
-rw-r--r-- root/root     25470 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hadoop-annotations-3.4.1.jar
-rw-r--r-- root/root     94192 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-endpoint-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root    446355 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-mapreduce-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root    233269 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-hadoop-compat-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root    248185 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-shell-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root   4022595 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-thrift-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root    305590 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/libthrift-0.14.1.jar
-rw-r--r-- root/root    479337 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-rest-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root    128076 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jaxb-api-2.3.1.jar
-rw-r--r-- root/root     78030 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/javax.activation-1.2.0.jar
-rw-r--r-- root/root     78492 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jackson-annotations-2.17.2.jar
-rw-r--r-- root/root    581927 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jackson-core-2.17.2.jar
-rw-r--r-- root/root   1649454 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jackson-databind-2.17.2.jar
-rw-r--r-- root/root     51421 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-shaded-jackson-jaxrs-json-provider-4.1.10.jar
-rw-r--r-- root/root     37122 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jackson-module-jaxb-annotations-2.17.3.jar
-rw-r--r-- root/root    115638 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jakarta.xml.bind-api-2.3.3.jar
-rw-r--r-- root/root     90184 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jettison-1.5.4.jar
-rw-r--r-- root/root    110066 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hadoop-auth-3.4.1.jar
-rw-r--r-- root/root    779369 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/nimbus-jose-jwt-9.37.2.jar
-rw-r--r-- root/root      4722 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jcip-annotations-1.0-1.jar
-rw-r--r-- root/root    339439 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/curator-framework-5.7.1.jar
-rw-r--r-- root/root     36361 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/kerb-util-2.0.3.jar
-rw-r--r-- root/root     30190 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/kerby-config-2.0.3.jar
-rw-r--r-- root/root    115065 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/kerb-crypto-2.0.3.jar
-rw-r--r-- root/root     24969 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-external-blockcache-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root    473774 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/spymemcached-2.12.3.jar
-rw-r--r-- root/root     24135 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-metrics-api-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root     30984 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-metrics-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root   8361635 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-protocol-shaded-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root     26366 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/javax.annotation-api-1.2.jar
-rw-r--r-- root/root     62297 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-resource-bundle-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root    780321 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/httpclient-4.5.13.jar
-rw-r--r-- root/root    328593 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/httpcore-4.4.13.jar
-rw-r--r-- root/root    106429 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-asyncfs-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root    267139 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-backup-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root    245592 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-balancer-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root    443153 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/agrona-1.12.0.jar
-rw-r--r-- root/root     78440 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-replication-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root    131846 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-http-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root   2340216 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-shaded-jetty-4.1.10.jar
-rw-r--r-- root/root   3538928 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-shaded-jersey-4.1.10.jar
-rw-r--r-- root/root     25058 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jakarta.annotation-api-1.3.5.jar
-rw-r--r-- root/root     91930 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jakarta.validation-api-2.0.2.jar
-rw-r--r-- root/root     18140 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/jakarta.inject-2.6.1.jar
-rw-r--r-- root/root    794714 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/javassist-3.30.2-GA.jar
-rw-r--r-- root/root    111819 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-zookeeper-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root   2112099 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/snappy-java-1.1.10.4.jar
-rw-r--r-- root/root     58284 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/commons-cli-1.5.0.jar
-rw-r--r-- root/root    150058 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-hbtop-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root     33859 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-compression-aircompressor-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root    254937 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/aircompressor-0.27.jar
-rw-r--r-- root/root     20125 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-compression-brotli-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root     44739 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/brotli4j-1.11.0.jar
-rw-r--r-- root/root      3348 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/service-1.11.0.jar
-rw-r--r-- root/root    430779 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/native-linux-x86_64-1.11.0.jar
-rw-r--r-- root/root     19409 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-compression-lz4-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root    682804 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/lz4-java-1.8.0.jar
-rw-r--r-- root/root     19557 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-compression-snappy-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root     24056 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-compression-zstd-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root   5906781 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/zstd-jni-1.5.5-2.jar
-rw-r--r-- root/root    256178 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-diagnostics-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root     15391 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-logging-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root    322271 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/hbase-shaded-gson-4.1.10.jar
-rw-r--r-- root/root  33609531 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/ruby/jruby-complete-9.4.9.0.jar
-rw-r--r-- root/root     29229 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/client-facing-thirdparty/opentelemetry-semconv-1.15.0-alpha.jar
-rw-r--r-- root/root     41472 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/client-facing-thirdparty/slf4j-api-1.7.30.jar
-rw-r--r-- root/root    127628 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/client-facing-thirdparty/opentelemetry-api-1.15.0.jar
-rw-r--r-- root/root     61829 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/client-facing-thirdparty/commons-logging-1.2.jar
-rw-r--r-- root/root     45609 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/client-facing-thirdparty/opentelemetry-context-1.15.0.jar
-rw-r--r-- root/root     16537 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/client-facing-thirdparty/jcl-over-slf4j-1.7.30.jar
-rw-r--r-- root/root      4592 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/client-facing-thirdparty/jul-to-slf4j-1.7.30.jar
-rw-r--r-- root/root    302511 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/client-facing-thirdparty/log4j-api-2.17.2.jar
-rw-r--r-- root/root   1811089 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/client-facing-thirdparty/log4j-core-2.17.2.jar
-rw-r--r-- root/root     24248 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/client-facing-thirdparty/log4j-slf4j-impl-2.17.2.jar
-rw-r--r-- root/root    303443 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/client-facing-thirdparty/log4j-1.2-api-2.17.2.jar
-rw-r--r-- root/root     18245 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/client-facing-thirdparty/audience-annotations-0.15.0.jar
-rw-r--r-- root/root  66814203 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/shaded-clients/hbase-shaded-client-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root  33507333 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/shaded-clients/hbase-shaded-client-byo-hadoop-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root  55234459 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/shaded-clients/hbase-shaded-mapreduce-4.0.0-alpha-1-SNAPSHOT.jar
-rw-r--r-- root/root    208781 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/zkcli/jline-2.11.jar
-rw-r--r-- root/root  13821688 2020-01-22 16:10 hbase-4.0.0-alpha-1-SNAPSHOT/lib/trace/opentelemetry-javaagent-1.15.0.jar


# Also check client tar

$ tar --list -vf ./hbase-assembly/target/hbase-4.0.0-alpha-1-SNAPSHOT-client-bin.tar.gz | grep 'jar' | grep 'webjar'
<no results>

Check if hbase-server has any JavaScript / CSS files:

$ unzip -l hbase-server/target/hbase-server-4.0.0-alpha-1-SNAPSHOT.jar | grep '.js'                        
     6107  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/footer_jsp.class
    28907  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/hbck_jsp.class
    10035  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/header_jsp.class
     5702  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/master_jsp.class
    13661  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/operationDetails_jsp.class
     1486  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/procedures_jsp$1.class
      836  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/procedures_jsp$2.class
    18363  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/procedures_jsp.class
    14157  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/processMaster_jsp.class
    14662  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/quotas_jsp.class
     5827  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/redirect_jsp.class
     1716  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/rits_jsp$1.class
    16455  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/rits_jsp.class
    32132  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/rsgroup_jsp.class
    14044  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/snapshot_jsp.class
    14055  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/snapshotsStats_jsp.class
    11650  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/startupProgress_jsp.class
    71747  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/table_jsp.class
     9482  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/tablesDetailed_jsp.class
     9588  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/userSnapshots_jsp.class
     7851  2020-01-22 15:10   org/apache/hadoop/hbase/generated/master/zk_jsp.class
     6119  2020-01-22 15:10   org/apache/hadoop/hbase/generated/regionserver/footer_jsp.class
     8715  2020-01-22 15:10   org/apache/hadoop/hbase/generated/regionserver/header_jsp.class
    14647  2020-01-22 15:10   org/apache/hadoop/hbase/generated/regionserver/processRS_jsp.class
    16056  2020-01-22 15:10   org/apache/hadoop/hbase/generated/regionserver/region_jsp.class
     5728  2020-01-22 15:10   org/apache/hadoop/hbase/generated/regionserver/regionserver_jsp.class
    16814  2020-01-22 15:10   org/apache/hadoop/hbase/generated/regionserver/rsOperationDetails_jsp.class
    10143  2020-01-22 15:10   org/apache/hadoop/hbase/generated/regionserver/storeFile_jsp.class


$ unzip -l hbase-server/target/hbase-server-4.0.0-alpha-1-SNAPSHOT.jar | grep '.css'

<0 results>

Check if hbase-rest has any JavaScript / CSS files:

$ unzip -l hbase-rest/target/hbase-rest-4.0.0-alpha-1-SNAPSHOT.jar | grep '.js'
     6103  2020-01-22 15:10   org/apache/hadoop/hbase/generated/rest/footer_jsp.class
     8413  2020-01-22 15:10   org/apache/hadoop/hbase/generated/rest/header_jsp.class
    14157  2020-01-22 15:10   org/apache/hadoop/hbase/generated/rest/processRest_jsp.class
     9718  2020-01-22 15:10   org/apache/hadoop/hbase/generated/rest/rest_jsp.class

$ unzip -l hbase-rest/target/hbase-rest-4.0.0-alpha-1-SNAPSHOT.jar | grep '.css'
<0 results>

Check if hbase-thrift has any JavaScript / CSS files:

$ unzip -l hbase-thrift/target/hbase-thrift-4.0.0-alpha-1-SNAPSHOT.jar | grep '.js' 
     6107  2020-01-22 15:10   org/apache/hadoop/hbase/generated/thrift/footer_jsp.class
     8253  2020-01-22 15:10   org/apache/hadoop/hbase/generated/thrift/header_jsp.class
    11098  2020-01-22 15:10   org/apache/hadoop/hbase/generated/thrift/thrift_jsp.class

$ unzip -l hbase-thrift/target/hbase-thrift-4.0.0-alpha-1-SNAPSHOT.jar | grep '.css'
<0 results>

Copy link
Member

@ndimiduk ndimiduk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this approach a lot better. I have just a couple questions/suggestions.

@@ -295,7 +295,7 @@
<overwrite>true</overwrite>
<resources>
<resource>
<directory>../hbase-server/src/main/resources/hbase-webapps/static</directory>
<directory>../hbase-server/target/hbase-webapps/static</directory>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know that this is how you found it, but does it make better sense to include an explicit dependency on the new webjars jar from hbase-rest? I doubt that we can remove the dependency on hbase-server, but it would be one fewer thing and make the dependency tree more obvious.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Many thanks, I completely agree your point that here and now we will have and implicit dependency from hbase-rest to hbase-server which is not obvious from first look. Also agree that this is not the best and would be better to have an explicit dependency.

The problem is that if we directly add the webjars to the dependencies section of the hbase-rest pom.xml, then those webjars will be included (packaged) into the hbase-rest jar which - as far as I understand - we want to avoid.

Maybe we could duplicate the maven-dependency-plugin (and then the copy steps) usage also to hbase-rest but then this would introduce a lot of XML duplication.

Other solution could be to extract the downloading and extraction of the webjars to a separate sub-project and then hase-server, hbase-rest and hbase-thrift could depend on it.

But I'm not a Maven expert by an means so if you have any better ideas please feel free to propose them. :)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Created a new Jira to improve this: https://issues.apache.org/jira/browse/HBASE-29355

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@PDavid PDavid force-pushed the HBASE-27802-js-programatically-2 branch from 91dc70b to c3d9af6 Compare April 16, 2025 15:05
@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 29s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 jshint 0m 0s jshint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗 mvndep 0m 42s Maven dependency ordering for branch
+1 💚 mvninstall 3m 29s master passed
+1 💚 compile 8m 7s master passed
+1 💚 spotless 0m 46s branch has no errors when running spotless:check.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for patch
+1 💚 mvninstall 3m 6s the patch passed
+1 💚 compile 8m 3s the patch passed
+1 💚 javac 8m 3s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 xmllint 0m 1s No new issues.
+1 💚 hadoopcheck 11m 56s Patch does not cause any errors with Hadoop 3.3.6 3.4.0.
+1 💚 spotless 0m 43s patch has no errors when running spotless:check.
_ Other Tests _
+1 💚 asflicense 0m 36s The patch does not generate ASF License warnings.
45m 54s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6864/3/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #6864
Optional Tests dupname asflicense javac codespell detsecrets xmllint hadoopcheck spotless compile jshint
uname Linux 83ccf45b7c95 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / c3d9af6
Default Java Eclipse Adoptium-17.0.11+9
Max. process+thread count 189 (vs. ulimit of 30000)
modules C: hbase-server hbase-thrift hbase-rest . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6864/3/console
versions git=2.34.1 maven=3.9.8 xmllint=20913
Powered by Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 30s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗 mvndep 0m 43s Maven dependency ordering for branch
+1 💚 mvninstall 3m 23s master passed
+1 💚 compile 2m 6s master passed
+1 💚 javadoc 3m 15s master passed
+1 💚 shadedjars 5m 54s branch has no errors when building our shaded downstream artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for patch
+1 💚 mvninstall 3m 2s the patch passed
+1 💚 compile 2m 7s the patch passed
+1 💚 javac 2m 7s the patch passed
+1 💚 javadoc 3m 4s the patch passed
+1 💚 shadedjars 5m 50s patch has no errors when building our shaded downstream artifacts.
_ Other Tests _
+1 💚 unit 284m 18s root in the patch passed.
321m 45s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6864/3/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR #6864
Optional Tests javac javadoc unit shadedjars compile
uname Linux e74bb76f2941 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 tool maven
Personality dev-support/hbase-personality.sh
git revision master / c3d9af6
Default Java Eclipse Adoptium-17.0.11+9
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6864/3/testReport/
Max. process+thread count 8364 (vs. ulimit of 30000)
modules C: hbase-server hbase-thrift hbase-rest . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6864/3/console
versions git=2.34.1 maven=3.9.8
Powered by Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@PDavid PDavid requested a review from ndimiduk April 17, 2025 06:37
@PDavid
Copy link
Contributor Author

PDavid commented Apr 17, 2025

Just rebased this on latest master branch - the PR build is now green.

@NihalJain
Copy link
Contributor

Just rebased this on latest master branch - the PR build is now green.

Thank you @PDavid. Hi @ndimiduk are we good on this?

@PDavid
Copy link
Contributor Author

PDavid commented May 5, 2025

Hi @ndimiduk,
What do you think, is this PR good or should we improve still?

@ndimiduk
Copy link
Member

ndimiduk commented May 7, 2025

Sorry for the delay.

Sure, let's try this. I still feel like there's a better way to manage this dependency more explicitly, but this is an improvement over what we had.

@PDavid
Copy link
Contributor Author

PDavid commented May 21, 2025

Many thanks for the reviews. @NihalJain and @ndimiduk. 👍

Maybe if you don't mind I'd merge this PR as is and open a followup Jira ticket to make the dependency more explicit. Is this an acceptable solution?

@ndimiduk
Copy link
Member

Many thanks for the reviews. @NihalJain and @ndimiduk. 👍

Maybe if you don't mind I'd merge this PR as is and open a followup Jira ticket to make the dependency more explicit. Is this an acceptable solution?

I'm fine with that. Let me merge and start the backport process.

@ndimiduk ndimiduk merged commit 2f9d9fc into apache:master May 21, 2025
1 check passed
@ndimiduk
Copy link
Member

Okay let me see how backports go

@ndimiduk
Copy link
Member

Oof, yeah, not event to branch-3 does it apply obviously. Do you mind handling the backports @PDavid ?

@PDavid
Copy link
Contributor Author

PDavid commented May 22, 2025

Oof, yeah, not event to branch-3 does it apply obviously. Do you mind handling the backports @PDavid ?

Many thanks for merging this @ndimiduk and also thanks for looking into the backports. 🙏

Of course I'll handle the backports and I'll PR-s for them.

@PDavid PDavid deleted the HBASE-27802-js-programatically-2 branch May 22, 2025 07:47
@PDavid
Copy link
Contributor Author

PDavid commented May 22, 2025

OK, found a small issue with this patch: The popovers ("Metrics" menu) were not working on the UI. Created an addendum PR here: #7018

(I'll include the addendum fix in the backport PR-s.)

PDavid added a commit to PDavid/hbase that referenced this pull request May 22, 2025
…e#6864)

Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Nihal Jain <nihaljain@apache.org>
(cherry picked from commit 2f9d9fc)
PDavid added a commit to PDavid/hbase that referenced this pull request May 22, 2025
…e#6864)

Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Nihal Jain <nihaljain@apache.org>
(cherry picked from commit 2f9d9fc)
PDavid added a commit to PDavid/hbase that referenced this pull request May 23, 2025
…e#6864)

Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Nihal Jain <nihaljain@apache.org>
(cherry picked from commit 2f9d9fc)
PDavid added a commit to PDavid/hbase that referenced this pull request May 23, 2025
…e#6864)

Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Nihal Jain <nihaljain@apache.org>
(cherry picked from commit 2f9d9fc)
PDavid added a commit to PDavid/hbase that referenced this pull request May 25, 2025
- HBASE-28388 Avoid index based field sorting in tablesorter apache#6779
- HBASE-27802 Manage static javascript resources programatically apache#6864
ndimiduk pushed a commit that referenced this pull request May 26, 2025
* HBASE-27802 Manage static javascript resources programatically (#6864)

Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Nihal Jain <nihaljain@apache.org>
(cherry picked from commit 2f9d9fc)

* 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 <ndimiduk@apache.org>
Signed-off-by: Nihal Jain <nihaljain@apache.org>
@PDavid
Copy link
Contributor Author

PDavid commented May 27, 2025

Hi @ndimiduk and @NihalJain,

I see, you already found but just for the record here are the backport PR-s here:

These backport PR-s already includes the fix (addendum PR) #7018

NihalJain pushed a commit that referenced this pull request May 27, 2025
* HBASE-27802 Manage static javascript resources programatically (#6864)

Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Nihal Jain <nihaljain@apache.org>
(cherry picked from commit 2f9d9fc)

* 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 <ndimiduk@apache.org>
Signed-off-by: Nihal Jain <nihaljain@apache.org>
NihalJain pushed a commit that referenced this pull request May 27, 2025
* HBASE-27802 Manage static javascript resources programatically (#6864)

Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Nihal Jain <nihaljain@apache.org>
(cherry picked from commit 2f9d9fc)

* HBASE-27802 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 <ndimiduk@apache.org>
Signed-off-by: Nihal Jain <nihaljain@apache.org>
NihalJain pushed a commit that referenced this pull request May 27, 2025
* HBASE-27802 Manage static javascript resources programatically (#6864)

Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Nihal Jain <nihaljain@apache.org>
(cherry picked from commit 2f9d9fc)

* 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 <ndimiduk@apache.org>
Signed-off-by: Nihal Jain <nihaljain@apache.org>
Sign up for free to 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