[ 
https://issues.apache.org/jira/browse/GEODE-10478?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jinwoo Hwang updated GEODE-10478:
---------------------------------
    Description: 
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:
 
 FROM bellsoft/liberica-openjdk-debian:17  # Currently: :11
 
 
h4. 2. Enhance Docker Networking Configuration

Review and update docker-compose.yml 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 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 - Update base image from Java 11 to Java 17
 # docker-compose.yml - 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

  was:
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


> 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
>            Priority: Major
>
> 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:
>  
>  FROM bellsoft/liberica-openjdk-debian:17  # Currently: :11
>  
>  
> h4. 2. Enhance Docker Networking Configuration
> Review and update docker-compose.yml 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 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 - Update base image from Java 11 to Java 17
>  # docker-compose.yml - 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)

Reply via email to