Jinwoo Hwang created GEODE-10507:
------------------------------------
Summary: Migrate Jetty 9 session replication tests to Jetty 12 for
Jakarta EE 10 compatibility
Key: GEODE-10507
URL: https://issues.apache.org/jira/browse/GEODE-10507
Project: Geode
Issue Type: Improvement
Reporter: Jinwoo Hwang
h3. *Description*
As part of the Jakarta EE 10 migration (GEODE-10466), we need to migrate the
existing Jetty 9 session replication tests to Jetty 12. Jetty 9 uses the legacy
{{javax.*}} namespace (Java EE 8), while Jetty 12 supports Jakarta EE 10 with
the {{jakarta.*}} namespace.
h3. *Background*
* Current Jetty 9 tests use Jetty 9.4.57.v20241219 which is incompatible with
Jakarta EE 10
* Jetty 12.0.27 is the latest stable version supporting Jakarta EE 10 (Servlet
6.0)
* The Cargo testing framework (used for container-based testing) requires
version 1.10.0+ for Jetty 12 support
h3. *Scope*
*Tests to Migrate:*
# {{Jetty9PeerToPeerTest.java}} → {{Jetty12PeerToPeerTest.java}}
# {{Jetty9ClientServerTest.java}} → {{Jetty12ClientServerTest.java}}
# {{Jetty9CachingClientServerTest.java}} →
{{Jetty12CachingClientServerTest.java}}
*Infrastructure Changes:*
# Update
[GenericAppServerInstall.java|vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-browser/workbench/workbench.html]:
** Replace {{JETTY9}} enum with JETTY12
** Update Jetty version from {{9.4.57.v20241219}} to {{12.0.27}}
** Change download package from {{jetty-distribution}} to {{jetty-home}}
(Jetty 12 packaging change)
# Upgrade Cargo dependency:
** Current: org.codehaus.cargo:cargo-core-uberjar:1.9.12
** Required: org.codehaus.cargo:cargo-core-uberjar:1.10.24 (or later)
** Location: DependencyConstraints.groovy
h3. *Implementation Details*
*New Test Files:*
All new tests should extend the same base classes and maintain identical test
methods:
// Jetty12PeerToPeerTest.java
public class Jetty12PeerToPeerTest extends CargoTestBase {
@Override
public ContainerInstall getInstall(IntSupplier portSupplier) throws
IOException {
return new GenericAppServerInstall(getClass().getSimpleName(),
GenericAppServerInstall.GenericAppServerVersion.JETTY12,
ConnectionType.PEER_TO_PEER, portSupplier);
}
}
*GenericAppServerInstall.java changes:*
* Remove {{JETTY9}} enum value
* Add JETTY12(12, "jetty-home-" + JETTY_VERSION + ".zip", "jetty")
* Update JETTY_VERSION constant from {{"9.4.57.v20241219"}} to {{"12.0.27"}}
* Container ID remains {{jetty12x}} (Cargo convention)
*Old Test Files to Delete:*
* {{Jetty9PeerToPeerTest.java}}
* {{Jetty9ClientServerTest.java}}
* {{Jetty9CachingClientServerTest.java}}
h3. *Testing Strategy*
# Run all three new Jetty 12 tests to verify:
** Peer-to-peer session replication
** Client-server session replication
** Caching client-server session replication
# Verify Jetty 12 download and container startup
# Confirm session serialization/deserialization with Jakarta EE 10 APIs
# Ensure backward compatibility is not required (Jakarta EE 10 only)
h3. *Dependencies*
* Requires GEODE-10466 (Jakarta EE 10 migration) base work
* Jetty 12.0.27 or later
* Cargo 1.10.24 or later
h3. *Acceptance Criteria*
* Three new Jetty 12 test files created with proper structure
* GenericAppServerInstall.java updated to support JETTY12
* Cargo dependency upgraded to 1.10.24+
* All Jetty 12 distributed tests pass successfully
* Old Jetty 9 test files removed
* Documentation updated if necessary
h3. *Notes*
* Jetty 12 uses {{jetty-home}} package instead of {{jetty-distribution}}
* Jetty 12 moved servlet modules to org.eclipse.jetty.ee10 package for Jakarta
EE 10
* Cargo container ID for Jetty 12 is {{jetty12x}}
* No backward compatibility with Jetty 9 required (clean Jakarta EE 10
migration)
h3. *Related Issues*
* Parent: GEODE-10466 (Jakarta EE 10 Migration)
* Related: Migration of Tomcat 6-9 tests to Tomcat 10
--
This message was sent by Atlassian Jira
(v8.20.10#820010)