Sdk 5178 upgrade to jakarta servlet #160
Open
+266
−205
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
1. Java & Servlet API Upgrade
Migrated from javax.servlet to jakarta.servlet:
2. Gradle Upgrade
Migrate to Java 11+, Jakarta Servlet 5+, and Modernize Build
What & Why
Java & Servlet API Migration:
Migrates the codebase from Java 8 and javax.servlet (Servlet 3) to Java 11+ and jakarta.servlet (Servlet 5+), in line with the modern Jakarta EE ecosystem. This future-proofs the library and enables compatibility with current servlet containers.
Gradle Build Modernization:
Upgrades the Gradle wrapper and scripts to version 8.7, bringing in enhanced build performance, security fixes, and improved cross-platform support.
Key Changes
Source & Test Code:
Updates all imports from javax.servlet.* to jakarta.servlet.*.
Updates Javadoc references accordingly.
Gradle Wrapper:
Bumps to Gradle 8.7, updates scripts for improved error handling and POSIX compliance.
Tests:
Uses matchesPattern in assertions for cookie headers to handle new attributes (like Expires).
Impact
Breaking Change:
Users must use Java 11 or higher and a servlet container supporting Jakarta Servlet 5+.
Build:
Build scripts are now aligned with current Gradle best practices.
Tests:
More robust tests, less prone to breakage from minor header formatting changes.
🙏 Credits
Inspired by the foundational work done in #156 — big thanks to TareqK for leading this migration effort.