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)

Reply via email to