[
https://issues.apache.org/jira/browse/GEODE-10472?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jinwoo Hwang resolved GEODE-10472.
----------------------------------
Resolution: Fixed
> Upgrade Spring Framework from version 5.3.20 to 6.x or higher
> -------------------------------------------------------------
>
> Key: GEODE-10472
> URL: https://issues.apache.org/jira/browse/GEODE-10472
> Project: Geode
> Issue Type: Improvement
> Reporter: Jinwoo Hwang
> Assignee: Jinwoo Hwang
> Priority: Major
> Fix For: 2.0.0
>
>
> *Overview:* Apache Geode currently uses Spring Framework 5.3.20 across
> multiple modules for web services, management console, command-line
> interface, and other functionality. Spring Framework 5.x has reached
> end-of-life, and upgrading to Spring Framework 6 or higher is necessary to
> benefit from security updates, performance improvements, and long-term
> support.
> *Current State:*
> * *Current Version:* Spring Framework 5.3.20 (defined in dependency
> management configuration)
> * *Affected Modules:*
> ** geode-web - Web services and REST API endpoints
> ** geode-web-api - REST API implementation
> ** geode-web-management - Management REST services
> ** geode-pulse - Web-based monitoring dashboard
> ** geode-gfsh - Command-line shell (via Spring Shell)
> ** geode-connectors - Database connectors (via Spring Shell)
> ** geode-assembly - Integration testing
> * *Affected Artifacts:*
> ** org.springframework:spring-core
> ** org.springframework:spring-beans
> ** org.springframework:spring-context
> ** org.springframework:spring-web
> ** org.springframework:spring-webmvc
> ** org.springframework:spring-aspects
> ** org.springframework:spring-oxm
> ** org.springframework:spring-test
> ** org.springframework:spring-tx
> ** org.springframework:spring-expression
> ** org.springframework.security:spring-security-* modules
> ** org.springframework.boot:spring-boot-* modules (2.6.7)
> *Impact Assessment:* Spring Framework is heavily used in Geode for:
> * *REST API Services:* Management and data access REST endpoints
> * *Web Management Console:* Browser-based cluster management interface
> (Pulse)
> * *GFSH Command Line Interface:* Via Spring Shell framework
> * *Security:* Authentication and authorization for web services
> * *Dependency Injection:* IoC container for various components
> * *Testing:* Spring Test framework for integration tests
> *Benefits of Upgrading:*
> # *Security:* Access to latest security patches and vulnerability fixes
> # *Java Compatibility:* Full support for Java 17+ and improved performance
> # *Performance:* Enhanced efficiency and reduced memory footprint
> # *Long-term Support:* Spring 6.x provides extended maintenance lifecycle
> # *Modern Features:* Support for reactive programming, native compilation,
> and observability
> # *Ecosystem Alignment:* Better compatibility with modern Spring ecosystem
> components
> *Migration Considerations:*
> # *Java Requirements:* Spring 6.x requires Java 17+ (Geode's current Java
> compatibility)
> # *API Changes:* Review Spring 6.x migration guide for breaking changes in:
> ** Web MVC configuration and annotations
> ** Security configuration patterns
> ** Bean definition and lifecycle management
> # *Spring Boot Upgrade:* Coordinate with Spring Boot 3.x upgrade (requires
> Spring 6.x)
> # *Spring Security:* Upgrade to Spring Security 6.x for compatibility
> # *Servlet API:* May require Servlet 6.0+ (Jakarta EE namespace changes)
> # *Testing Impact:* Extensive testing of web services, management console,
> and GFSH functionality
> *Breaking Changes to Address:*
> * Package namespace changes (javax.* to jakarta.*)
> * Deprecated API removal in Spring MVC and Spring Security
> * Changes in default security configurations
> * Web configuration modernization requirements
> *Files to Update:*
> * Dependency constraints configuration file
> * Spring configuration classes and XML files
> * Web controllers and REST endpoints
> * Security configuration classes
> * Test configurations and integration tests
> * Documentation and examples
> *Testing Strategy:*
> * Full regression testing of all REST API endpoints
> * Web Management Console (Pulse) functionality verification
> * GFSH command-line interface testing
> * Security authentication/authorization testing
> * Performance testing to ensure no degradation
> * Cross-browser compatibility testing for web interfaces
> * Integration testing with external Spring-based applications
> *Acceptance Criteria:*
> * All Spring Framework dependencies upgraded to 6.x version
> * All web services and REST APIs continue to function correctly
> * Pulse management console operates without issues
> * GFSH command-line interface maintains full functionality
> * Security configurations work properly with new Spring Security version
> * All existing tests pass with new Spring version
> * No performance regressions in web services
> * Documentation updated to reflect configuration changes
> *Dependencies:*
> * Spring Security must be upgraded to 6.x for compatibility
> * Consider impact on Spring Shell used by GFSH
--
This message was sent by Atlassian Jira
(v8.20.10#820010)