Skip to content

Conversation

@NihalJain
Copy link
Contributor

@NihalJain NihalJain commented Mar 11, 2025

Please find a detailed summary of all changes as below:

Dependencies

  • Replaced hbase-shaded-jetty i.e. Jetty 9 with hbase-shaded-jetty-12-plus-core and hbase-shaded-jetty-12-plus-ee8 i.e. Jetty 12 EE8
  • Upgrade servlet.api.version to 4.0.1
  • Upgrade tomcat.jasper.version to 9.0.107

Code Adjustments

Test Adjustments

References

@NihalJain NihalJain marked this pull request as draft March 11, 2025 20:31
@NihalJain

This comment was marked as duplicate.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@NihalJain NihalJain changed the title [WIP] Migrate to jetty 12 with EE8 and bump java servlet to 4.0.1 HBASE-29226 Migrate to jetty 12 with EE8 and bump java servlet to 4.0.1 Mar 27, 2025
@Apache-HBase

This comment has been minimized.

@NihalJain NihalJain marked this pull request as ready for review March 27, 2025 12:56
@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

Copy link
Contributor

@PDavid PDavid left a comment

Choose a reason for hiding this comment

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

Many thanks, looks great! 👍

@NihalJain
Copy link
Contributor Author

This PR is unblocked now. Have removed the staging repo ref to build against actual hbase thirdparty release. Let's wait for the CI result.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@NihalJain
Copy link
Contributor Author

Will merge this after #7207 and then rebase again.

@NihalJain
Copy link
Contributor Author

Rebased code after thirdparty PR merge, will wait for basic build to complete and then merge today.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 31s 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 🆗 shelldocs 0m 0s Shelldocs was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
_ master Compile Tests _
+0 🆗 mvndep 0m 15s Maven dependency ordering for branch
+1 💚 mvninstall 3m 17s master passed
+1 💚 compile 8m 19s master passed
+1 💚 checkstyle 1m 14s master passed
+1 💚 spotbugs 11m 37s master passed
+1 💚 spotless 0m 48s branch has no errors when running spotless:check.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 17s Maven dependency ordering for patch
+1 💚 mvninstall 3m 24s the patch passed
+1 💚 compile 11m 50s the patch passed
+1 💚 javac 11m 50s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 1m 28s /results-checkstyle-root.txt root: The patch generated 2 new + 10 unchanged - 0 fixed = 12 total (was 10)
+1 💚 shellcheck 0m 1s No new issues.
+1 💚 xmllint 0m 1s No new issues.
+1 💚 spotbugs 15m 58s the patch passed
+1 💚 hadoopcheck 14m 56s Patch does not cause any errors with Hadoop 3.3.6 3.4.0.
+1 💚 spotless 1m 1s patch has no errors when running spotless:check.
_ Other Tests _
+1 💚 asflicense 1m 32s The patch does not generate ASF License warnings.
88m 53s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6783/24/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #6783
Optional Tests dupname asflicense javac codespell detsecrets xmllint hadoopcheck spotless compile spotbugs checkstyle hbaseanti shellcheck shelldocs
uname Linux 0e04fcddee60 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 / 1c8dfa1
Default Java Eclipse Adoptium-17.0.11+9
Max. process+thread count 188 (vs. ulimit of 30000)
modules C: hbase-http hbase-server hbase-thrift hbase-it hbase-rest hbase-shaded/hbase-shaded-testing-util hbase-shaded/hbase-shaded-check-invariants hbase-shaded/hbase-shaded-with-hadoop-check-invariants . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6783/24/console
versions git=2.34.1 maven=3.9.8 spotbugs=4.7.3 shellcheck=0.8.0 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 28s 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 15s Maven dependency ordering for branch
+1 💚 mvninstall 3m 6s master passed
+1 💚 compile 2m 5s master passed
+1 💚 javadoc 3m 56s master passed
+1 💚 shadedjars 5m 59s branch has no errors when building our shaded downstream artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 18s Maven dependency ordering for patch
+1 💚 mvninstall 2m 57s the patch passed
+1 💚 compile 2m 6s the patch passed
+1 💚 javac 2m 6s the patch passed
+1 💚 javadoc 3m 56s the patch passed
+1 💚 shadedjars 5m 59s patch has no errors when building our shaded downstream artifacts.
_ Other Tests _
-1 ❌ unit 411m 42s /patch-unit-root.txt root in the patch failed.
500m 39s
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6783/24/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR #6783
Optional Tests javac javadoc unit shadedjars compile
uname Linux 80a055b5719e 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 / 1c8dfa1
Default Java Eclipse Adoptium-17.0.11+9
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6783/24/testReport/
Max. process+thread count 7680 (vs. ulimit of 30000)
modules C: hbase-http hbase-server hbase-thrift hbase-it hbase-rest hbase-shaded/hbase-shaded-testing-util hbase-shaded/hbase-shaded-check-invariants hbase-shaded/hbase-shaded-with-hadoop-check-invariants . U: .
Console output https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6783/24/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.

@NihalJain NihalJain merged commit 8bb4e8c into apache:master Aug 22, 2025
1 check failed
NihalJain added a commit that referenced this pull request Aug 22, 2025
….1 (#7233) (#6783)

Please find a detailed summary of all changes as below:

**Dependencies**
- Replaced `hbase-shaded-jetty` i.e. Jetty 9 with `hbase-shaded-jetty-12-plus-core` and `hbase-shaded-jetty-12-plus-ee8` i.e. Jetty 12 EE8
- Upgrade `servlet.api.version` to `4.0.1`
- Upgrade `tomcat.jasper.version` to `9.0.108`

**Code Adjustments**
- Modified import statements to use `org.eclipse.jetty.ee8` etc. as per Jetty 12
- Replace `HandlerCollection` with `Handler.Sequence`
  - Refer https://jetty.org/docs/jetty/12/programming-guide/migration/11-to-12.html#api-changes-handler-sequence 
- Adjust request log handler.
   - Refer https://jetty.org/docs/jetty/12/programming-guide/migration/11-to-12.html#api-changes-handler-requestlog
- Adjust error handlers' set logic based on available methods
- Remove usage of deprecated method `setResourceBase()` with `setBaseResourceAsPath()`. Also, passing `logDir` path in canonical format as otherwise, we get `404` in case we have `\..\` in static path. 
  - Refer jetty/jetty.project#12958
- Remove `MultiException`  with `ExceptionUtil.MultiException` in `HttpServer.java`.
- Modify assignment: `webServer.getHandlers()` with new return type: `Array` to `List`
- Replaced `Constraint` with `ServletConstraint`
- Added `LogLevelExceptionUtils.java` to handle HTML error response for log levels as `connection.getResponseMessage()` now returns error code as string in message and hence causes test failure otherwise
- Allow `javax` as xsd files at `javax/servlet/resources` come via `org.apache.hbase.thirdparty:hbase-shaded-jetty-12-ee8 `

**Test Adjustments**
- Update `checkBindAddress()` to call `server.start()` else `testBindAddress()` fails with NPE. Verified doing same without Jetty 12 works as well.
- Replace `JSON.parse()` with `new JSON().fromJSON()` and `JSON.toString()` with `new JSON().toJSON()`
- Update app name from `".."` to `""` as it fails with `IllegalArgumentException` otherwise
- Update `MockHttpApiRule` where we replace `AbstractHandler` with `Handler.Abstract` and adjust code based on new interface. 
  - Refer https://jetty.org/docs/jetty/12/programming-guide/migration/11-to-12.html#handler-request-content-apis
- Deleted `webdefaults.xml`. Need to see if still needed.
- Added necessary compliance rules for URI validation, required by tests and possibly users as well. Add note for what fails if these rules are not there in tests. 
  - Refer jetty/jetty.project#11890 (comment)

**References**
- Umbrealla at HBASE-29224
- Discussion at https://lists.apache.org/thread/bkrfm705kqd3bqzyvo7jv46t6p64x2n5
- Dependent thirdparty change at apache/hbase-thirdparty@fd76b1e

Signed-off-by: Dávid Paksy <[email protected]>
Signed-off-by: Istvan Toth <[email protected]>
EungsopYoo pushed a commit to EungsopYoo/hbase that referenced this pull request Sep 26, 2025
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