Skip to content

Conversation

@JinwooHwang
Copy link
Contributor

Summary

This PR updates Apache Geode documentation to reflect Jakarta EE 10 compatibility and Java 17 requirements for version 2.0.

Motivation

Apache Geode 2.0 introduces breaking changes due to:

  • Migration from Java EE (javax.*) to Jakarta EE 10 (jakarta.*)
  • Minimum Java version upgrade from Java 8 to Java 17
  • Updated dependency versions to support Jakarta EE 10

The documentation needs to be updated to reflect these changes and provide clear migration guidance for users.

Changes

1. Java Version Format Update

Problem: Documentation used Java 8 version format (1.8.0_121) which is incompatible with Java 17 versioning (17.0.16).

Solution: Updated all documentation to use Java 17 version format.

Template Variables Updated

File: geode-book/config.yml

# Old values
min_java_version: '8'
min_java_update: '121'

# New values
min_java_version: '17'
min_java_update: '16'

This produces the version string: 17.0.16

Template Expression Updates

  • Old: 1.<%=vars.min_java_version%>.0_<%=vars.min_java_update%> → produces 1.17.0_121
  • New: <%=vars.min_java_version%>.0.<%=vars.min_java_update%> → produces 17.0.16

Files Modified (20+ occurrences)

  1. configuring/cluster_config/persisting_configurations.html.md.erb (7 occurrences)
  2. getting_started/15_minute_quickstart_gfsh.html.md.erb (2 occurrences)
  3. getting_started/installation/install_standalone.html.md.erb (4 occurrences)
  4. managing/management/jmx_manager_operations.html.md.erb (1 occurrence)
  5. configuring/running/running_the_locator.html.md.erb (1 occurrence)
  6. configuring/running/running_the_cacheserver.html.md.erb (1 occurrence)
  7. tools_modules/http_session_mgmt/tc_additional_info.html.md.erb (1 occurrence)
  8. tools_modules/http_session_mgmt/tc_setting_up_the_module.html.md.erb (1 occurrence)
  9. tools_modules/gfsh/tour_of_gfsh.html.md.erb (3 occurrences)
  10. tools_modules/http_session_mgmt/weblogic_setting_up_the_module.html.md.erb (1 occurrence)

Examples of changes:

  • Java Version output in gfsh: Java Version: 17.0.16 (was 1.8.0_121)
  • JAVA_HOME paths: /usr/java/jdk-17.0.16 (was /usr/java/jdk1.8.0_121)
  • JVM Version in Tomcat: 17.0.16 (was 1.8.0_121)

2. JAR Version Updates

Problem: Documentation referenced Geode 1.0.0 JAR files which are outdated for version 2.0.

Solution: Updated all JAR version references from 1.0.0 to 2.0.0.

Files Modified (4 occurrences)

  1. getting_started/15_minute_quickstart_gfsh.html.md.erb
    • geode-core-1.0.0.jargeode-core-2.0.0.jar (2 occurrences)
  2. tools_modules/http_session_mgmt/tc_setting_up_the_module.html.md.erb
    • geode-modules-1.0.0.jargeode-modules-2.0.0.jar
    • geode-modules-tomcat8-1.0.0.jargeode-modules-tomcat8-2.0.0.jar

3. WebLogic HTTP Session Management Documentation

File: tools_modules/http_session_mgmt/weblogic_setting_up_the_module.html.md.erb

Problem: Manifest Class-Path and startup examples contained incorrect JAR versions and outdated Java EE dependencies.

Solution: Updated to Jakarta EE 10 dependencies and Geode 2.0 module versions.

Key Dependency Changes

Dependency Old Version New Version Notes
All geode-* modules 1 2.0.0 Consistent Geode 2.0 versioning
javax.transaction-api 1.3 N/A Removed (Java EE)
jakarta.transaction-api N/A 2.0.1 Added (Jakarta EE 10)
jgroups 3.6.14.Final 3.6.20.Final Updated for stability
log4j-* 2.17.1 2.17.2 Security update
log4j-slf4j-impl 2.17.1 N/A Removed
log4j-slf4j2-impl N/A 2.17.2 Updated for SLF4J 2.x
slf4j-api 1.7.36 2.0.17 Major version upgrade
fastutil 8.2.2 8.5.8 Performance improvements

Documentation Build Verification

  • Rebuilt documentation
  • Verified all template variables render correctly
  • Confirmed no broken links or missing variables

Impact Assessment

Documentation Impact

  • High: All Java version references across documentation updated
  • High: WebLogic integration guide completely revised for Jakarta EE 10
  • Medium: Installation guides updated with Java 17 requirements
  • Medium: Quick start guides updated with correct JAR versions

User Impact

  • Breaking Change: Applications using Java 8 must upgrade to Java 17
  • Breaking Change: Java EE (javax.*) applications must migrate to Jakarta EE 10 (jakarta.*)
  • Migration Required: Users must update WAR files and dependencies
  • Documentation Required: Clear migration path documented for existing users

Compatibility

  • Minimum Java Version: Java 17.0.16 (was Java 8u121)
  • Jakarta EE Version: Jakarta EE 10 (was Java EE 8)
  • Application Server Compatibility:
    • WildFly 31+ (Jakarta EE 10)
    • Tomcat 10+ (Jakarta EE 10)
    • WebLogic 14.1.2+ (with Jakarta EE 10 support)

Files Modified

Total files modified: 12
Total occurrences changed: 30+

Configuration:
- geode-book/config.yml

Documentation:
- geode-docs/configuring/cluster_config/persisting_configurations.html.md.erb
- geode-docs/configuring/running/running_the_cacheserver.html.md.erb
- geode-docs/configuring/running/running_the_locator.html.md.erb
- geode-docs/getting_started/15_minute_quickstart_gfsh.html.md.erb
- geode-docs/getting_started/installation/install_standalone.html.md.erb
- geode-docs/managing/management/jmx_manager_operations.html.md.erb
- geode-docs/tools_modules/gfsh/tour_of_gfsh.html.md.erb
- geode-docs/tools_modules/http_session_mgmt/tc_additional_info.html.md.erb
- geode-docs/tools_modules/http_session_mgmt/tc_setting_up_the_module.html.md.erb
- geode-docs/tools_modules/http_session_mgmt/weblogic_setting_up_the_module.html.md.erb

Related Issues

  • Part of Jakarta EE 10 migration effort for Apache Geode 2.0
  • Updates documentation on doc2.0 branch

For all changes, please confirm:

  • Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?
  • Has your PR been rebased against the latest commit within the target branch (typically develop)?
  • Is your initial contribution a single, squashed commit?
  • Does gradlew build run cleanly?
  • Have you written or updated unit tests to verify your changes?
  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

- Update Java version format from 1.8.0_121 to 17.0.16
- Update all Geode module versions from 1.0.0 to 2.0.0
- Replace javax.transaction-api with jakarta.transaction-api 2.0.1
- Update dependency versions (slf4j 2.0.17, log4j 2.17.2, jgroups 3.6.20, fastutil 8.5.8)
- Update config.yml: min_java_version='17', min_java_update='16'
- Fix Java version template expressions across 20+ documentation files
- Update WebLogic HTTP session management guide for Jakarta EE 10
- Update installation guides with Java 17 requirements

Breaking Changes:
- Minimum Java version now Java 17.0.16 (was Java 8u121)
- Jakarta EE 10 required (was Java EE 8)
- All javax.* packages replaced with jakarta.*

Testing:
- Verified peer-to-peer and client-server configurations
- Documentation builds successfully
- All quality checks passed (spotlessCheck, rat, checkPom, pmdMain)
@JinwooHwang JinwooHwang requested a review from raboof November 13, 2025 20:41
@JinwooHwang
Copy link
Contributor Author

@raboof, all checks have passed.

@JinwooHwang JinwooHwang changed the title [GEODE-10518] Update documentation for Jakarta EE 10 and Java 17 [GEODE-10518] 2.0 RELEASE BLOCKER : Update documentation for Jakarta EE 10 and Java 17 Nov 17, 2025
@JinwooHwang
Copy link
Contributor Author

We are ready to merge. Please let me know if you have any concerns. Thank you very much for your support.

@JinwooHwang JinwooHwang changed the title [GEODE-10518] 2.0 RELEASE BLOCKER : Update documentation for Jakarta EE 10 and Java 17 [GEODE-10518] blocks-2.0.0 : Update documentation for Jakarta EE 10 and Java 17 Nov 30, 2025
@JinwooHwang
Copy link
Contributor Author

Please let me know if you have any questions. Thank you for your help.

@JinwooHwang
Copy link
Contributor Author

Thank you so much for your help, @sboorlagadda and @raboof. This is the only remaining blocker. Please let me know if you have any questions or concerns—I truly appreciate your time and guidance. Thank you again.

@leonfin
Copy link
Contributor

leonfin commented Dec 5, 2025

  1. Critical: Inconsistent Attribute Name in XML Configuration

Location: geode-docs/tools_modules/http_session_mgmt/quick_start.html.md.erb:66

  • <Listener className="org.apache.geode.modules.session.catalina.PeerToPeerCacheLifecycleListener"
  •    locator="localhost[10334]" />
    
  • <Listener className="org.apache.geode.modules.session.catalina.PeerToPeerCacheLifecycleListener"
  •    locators="localhost[10334]" />
    

Issue: The attribute name changed from locator to locators. This needs verification:

  • Is this a breaking API change?
  • Does the actual implementation class support both attributes for backward compatibility?
  • Should there be migration notes about this change?
  1. Potentially Confusing Example Path

Location: geode-docs/tools_modules/http_session_mgmt/tomcat_installing_the_module.html.md.erb:56

  • CATALINA_HOME=/usr/bin/apache-tomcat-9.0.62
  • CATALINA_HOME=/opt/apache-tomcat-10.1.49

Issue: The path shows .49 but earlier in the file it shows .30. While these are just examples, consistency would be better for readability.

  1. Java Version Format Inconsistency in Output Examples

Location: geode-docs/tools_modules/http_session_mgmt/tomcat_setting_up_the_module.html.md.erb:123

-15-Jul-2021 10:25:11.483 INFO...
+15-Jul-2025 10:25:11.483 INFO...

Issue: The year was updated to 2025, but this is output from a running system. The commit message says Java 17 is required, and the output should reflect that version number format. However, I see:

Java Version: <%=vars.min_java_version%>.0.<%=vars.min_java_update%>

This will render as 17.0.16 which is correct for Java 17 format (not 1.17.0_16).

  1. Missing Period in Changelog/Deprecation Message

Location: geode-docs/tools_modules/http_session_mgmt/quick_start.html.md.erb:55

Support for Pivotal tc Server has been removed. Users should migrate to Tomcat 10.1 or later.

This line appears standalone and could be integrated better with the "Note:" style used elsewhere.

Positive Aspects

  1. ✅ Comprehensive Version Updates: All Java version strings correctly changed from 1.8.0_121 format to 17.0.16 format
  2. ✅ Consistent Class Name Updates: All manager class names updated from Tomcat9DeltaSessionManager to Tomcat10DeltaSessionManager
  3. ✅ Clear Deprecation Notices: Multiple warnings added about tc Server and old Tomcat version discontinuation
  4. ✅ Good Troubleshooting Section: New troubleshooting section added to help users debug common issues
  5. ✅ Jakarta Namespace Migration: Correctly updated from javax.transaction-api to jakarta.transaction-api
  6. ✅ Navigation Cleanup: Removed tc Server entries from navigation (subnav file)
  7. ✅ Updated Tomcat Homepage Image: Binary image file updated (likely showing Jakarta EE compatible Tomcat version)

Recommendations

  1. High Priority: Verify the locator → locators attribute name change is correct and intentional
  2. Medium Priority: Clarify whether backward compatibility exists for the attribute name change
  3. Low Priority: Fix minor formatting inconsistencies (periods, example version numbers)
  4. Documentation: Add a migration guide section explaining breaking changes for users upgrading from 1.x to 2.0

Correctness Assessment

Overall: Good with minor issues ✅

The commit correctly updates the documentation for the major version migration. The changes are internally consistent and properly reflect:

  • Java 8 → Java 17 migration
  • Java EE → Jakarta EE 10 migration
  • Tomcat 10.1+ requirement
  • tc Server deprecation

The main concern is the locator → locators attribute change which could break existing configurations and needs verification.

@JinwooHwang
Copy link
Contributor Author

JinwooHwang commented Dec 5, 2025

Thank you so much for jumping in to review this, @leonfin. I really appreciate you taking the time—especially when other reviewers were unavailable.

The property name must be locators (plural), not locator (singular), because that's the actual property name defined in the Geode configuration system.

Evidence from Codebase History

From the very beginning (commit 1709e62, June 29, 2015), DistributionConfig.java has defined:

public static final String LOCATORS_NAME = "locators";
public static final String LOCATOR_WAIT_TIME_NAME = "locator-wait-time";
public static final String START_LOCATOR_NAME = "start-locator";
public static final String REMOTE_LOCATORS_NAME = "remote-locators";

Notice that all locator-related properties use either plural (locators, remote-locators) or hyphenated (locator-wait-time, start-locator) forms. There has never been a "locator" (singular, standalone) property in the codebase.

The Documentation Error

When the documentation was first consolidated in commit ccc2fbd (October 4, 2016), someone accidentally changed locators= to locator= (removing the 's'). This error has existed in the documentation for almost 9 years, but the code has always required locators (plural). I found this while reviewing the documentation for the upcoming 2.0 release. This PR corrects that long-standing mistake.

Updates Based on Your Review

I've addressed all the issues you identified:

  1. Tomcat version consistency (tomcat_installing_the_module.html.md.erb:56): Fixed the path from 10.1.49 to 10.1.30 to match the example text above it.

  2. tc Server deprecation message (quick_start.html.md.erb:55): Consolidated the three duplicate tc Server removal messages into a single, properly formatted Note: that follows the documentation style guide.

Thank you again for your thorough review! These improvements make the documentation much clearer and more consistent.

…te tc Server deprecation notes

- Fix Tomcat version inconsistency: Changed CATALINA_HOME path from 10.1.49 to 10.1.30 to match example text
- Consolidate duplicate tc Server removal messages into single Note for clarity
- Improve documentation consistency and readability
@JinwooHwang
Copy link
Contributor Author

I have implemented suggestions by @leonfin. All checks have passed. We are ready to merge. @leonfin , @sboorlagadda and @raboof, please let me know if you have any concerns or questions. Thank you very much for your support.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants