Jinwoo Hwang created GEODE-10478:
------------------------------------
Summary: Migrate Docker base image from Java 11 to Java 17 for SNI
acceptance tests
Key: GEODE-10478
URL: https://issues.apache.org/jira/browse/GEODE-10478
Project: Geode
Issue Type: Task
Reporter: Jinwoo Hwang
h3. Current Issue
The SNI acceptance tests (SingleServerSNIAcceptanceTest and
{{{}DualServerSNIAcceptanceTest{}}}) are currently failing due to a Java
version compatibility mismatch. Investigation shows:
* {*}Build environment{*}: Java 17 (compiles Geode bytecode)
* {*}Docker container{*}: Java 11 (Bellsoft Liberica OpenJDK Debian image)
This mismatch will cause {{UnsupportedClassVersionError}} when attempting to
run gfsh commands inside the Docker container, as Java 11 cannot execute
bytecode compiled with Java 17 (class file version 61.0 vs 55.0).
h3. Proposed Solution
Update the Docker infrastructure to align with the Java 17 build environment:
h4. 1. Update Docker Base Image
Modify Dockerfile to use Java 17:
*
*
*
*
h4. 2. Enhance Docker Networking Configuration
Review and update
[docker-compose.yml|vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-browser/workbench/workbench.html]
for SNI tests to ensure:
* Proper hostname resolution for SNI proxy routing
* Correct network aliases for {{locator-maeve}}
* Appropriate port mappings for HAProxy
* Proper service dependencies
h3. Acceptance Criteria
* Docker container uses Java 17 compatible with build environment
*
[SingleServerSNIAcceptanceTest|vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-browser/workbench/workbench.html]
passes all tests
* {{DualServerSNIAcceptanceTest}} passes all tests
* Docker container can successfully execute gfsh commands
* SNI proxy routing works correctly through HAProxy
* No system-level modifications required (e.g.,
[hosts|vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-browser/workbench/workbench.html]
entries)
h3. Testing Plan
# {*}Compilation Test{*}: {{./gradlew
:geode-assembly:compileAcceptanceTestJava}}
# {*}Single Server Test{*}: {{./gradlew :geode-assembly:acceptanceTest --tests
"*SingleServerSNIAcceptanceTest*"}}
# {*}Dual Server Test{*}: {{./gradlew :geode-assembly:acceptanceTest --tests
"*DualServerSNIAcceptanceTest*"}}
# {*}Docker Validation{*}: Verify gfsh commands execute without version errors
h3. Files to Modify
#
[Dockerfile|vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-browser/workbench/workbench.html]
- Update base image from Java 11 to Java 17
#
[docker-compose.yml|vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-browser/workbench/workbench.html]
- Review/enhance networking configuration
h3. Expected Benefits
* {*}Compatibility{*}: Align Docker environment with build environment
* {*}Reliability{*}: Eliminate Java version mismatch errors
* {*}Maintainability{*}: Consistent Java version across environments
* {*}Future-ready{*}: Support continued Java 17+ development
h3. Risk Assessment
* {*}Low Risk{*}: Bellsoft Liberica OpenJDK 17 image is well-established and
maintained
* {*}Backward Compatibility{*}: No breaking changes expected for existing
functionality
* {*}Testing{*}: Comprehensive test coverage ensures regression detection
--
This message was sent by Atlassian Jira
(v8.20.10#820010)