-
Notifications
You must be signed in to change notification settings - Fork 99
Upgrade to Spring Boot 3.5.8 #680
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
upgraded Redis OM Spring to Spring Boot 3.5.8. All tests pass successfully!
Changes Made:
1. Spring Boot: 3.4.12 → 3.5.8
2. Spring Data Redis: 3.4.12 → 3.5.6
3. Jedis: 5.2.0 → 6.0.0
4. Test Fix: Updated MyHashQueriesImpl.java to use double quotes instead of single quotes for multi-word search queries (Jedis 6.0.0 query escaping change)
Key Release Notes Summary:
Spring Boot 3.5.x includes significant improvements:
- Spring Data BOM 2025.0.0 (Spring Data Redis 3.5.6)
- Jedis 6.0.0 (managed by Spring Boot)
- Docker/Testcontainers fix for Docker 29.0.0 compatibility (3.5.8)
- Java 25 support
- Various bug fixes for SSL metrics, Undertow, and class loading
- No breaking API changes affecting Redis OM Spring
Breaking Change Addressed:
- Jedis 6.0.0 changed how it handles search query quoting. Multi-word terms in RediSearch queries now require double quotes (") instead of single quotes (') for proper escaping.
- Add comprehensive migration guide documenting Jedis 6.0.0 query escaping changes - Update version requirements page with Spring Boot 3.5.8 and Jedis 6.0.0 - Add migration guide to documentation navigation - Include before/after code examples for query string updates - Document who is affected by the Jedis breaking change The Jedis 6.0.0 upgrade changes how multi-word search terms are quoted in RediSearch queries. Users with custom repository implementations need to update from single quotes to double quotes.
…h ValueExpressionDelegate Migrate from deprecated Spring Data QueryMethodEvaluationContextProvider to the new ValueExpressionDelegate API introduced in Spring Data 3.4. Changes: - Update RedisDocumentRepositoryFactory to use ValueExpressionDelegate - Update RedisEnhancedRepositoryFactory to use ValueExpressionDelegate - Update RediSearchQuery constructor signature - Update RedisEnhancedQuery constructor signature - Update all javadoc to reflect the new parameter This change eliminates all deprecation warnings when building with Spring Boot 3.5.x and prepares the codebase for Spring Boot 4.0 compatibility where the deprecated API will be removed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR upgrades Redis OM Spring from version 1.0.5 to 1.1.0, bringing support for Spring Boot 3.5.8, Spring Data Redis 3.5.6, and Jedis 6.0.0. The upgrade addresses all deprecation warnings by migrating from the deprecated QueryMethodEvaluationContextProvider API to the new ValueExpressionDelegate API introduced in Spring Data 3.4, ensuring compatibility with the upcoming Spring Boot 4.0 release. The PR also handles a breaking change in Jedis 6.0.0 regarding query string escaping for RediSearch queries.
Key Changes:
- Dependency upgrades: Spring Boot 3.4.12 → 3.5.8, Spring Data Redis 3.4.12 → 3.5.6, Jedis 5.2.0 → 6.0.0
- API migration from deprecated
QueryMethodEvaluationContextProvidertoValueExpressionDelegateacross repository factory and query classes - Updated query escaping in test fixtures to use double quotes instead of single quotes for Jedis 6.0.0 compatibility
- Comprehensive migration guide and updated version requirements documentation
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
gradle.properties |
Updated version numbers for Redis OM Spring (1.0.5 → 1.1.0), Spring Boot (3.4.12 → 3.5.8), Spring Data Redis (3.4.12 → 3.5.6), and Jedis (5.2.0 → 6.0.0) |
redis-om-spring/src/main/java/com/redis/om/spring/repository/support/RedisEnhancedRepositoryFactory.java |
Migrated from deprecated QueryMethodEvaluationContextProvider to ValueExpressionDelegate in factory and lookup strategy classes |
redis-om-spring/src/main/java/com/redis/om/spring/repository/support/RedisDocumentRepositoryFactory.java |
Replaced deprecated QueryMethodEvaluationContextProvider with ValueExpressionDelegate in repository factory and query lookup strategy |
redis-om-spring/src/main/java/com/redis/om/spring/repository/query/RedisEnhancedQuery.java |
Updated constructor parameter and JavaDoc to use ValueExpressionDelegate instead of deprecated QueryMethodEvaluationContextProvider |
redis-om-spring/src/main/java/com/redis/om/spring/repository/query/RediSearchQuery.java |
Updated constructor signature and documentation to use ValueExpressionDelegate for SpEL expression evaluation |
tests/src/test/java/com/redis/om/spring/fixtures/hash/repository/MyHashQueriesImpl.java |
Changed query string escaping from single quotes to double quotes to comply with Jedis 6.0.0 breaking change |
docs/content/modules/ROOT/pages/version-requirements.adoc |
Updated version requirements table and examples to reflect Spring Boot 3.5.8, Spring Data Redis 3.5.6, and Jedis 6.0.0, with reference to migration guide |
docs/content/modules/ROOT/pages/migration-guide.adoc |
New comprehensive migration guide documenting the Jedis 6.0.0 breaking change in query escaping with before/after examples and affected user groups |
docs/content/modules/ROOT/nav.adoc |
Added migration guide to the documentation navigation menu |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| === Dependency Changes | ||
|
|
||
| [cols="1,1,1"] |
Copilot
AI
Nov 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The AsciiDoc table definition is missing the options="header" attribute, which is needed to properly format the first row as a header. This is inconsistent with other tables in the documentation (e.g., version-requirements.adoc line 13).
Change from:
[cols="1,1,1"]to:
[cols="1,1,1", options="header"]This will ensure the "Dependency | Previous Version | New Version" row is formatted as a table header.
| [cols="1,1,1"] | |
| [cols="1,1,1", options="header"] |
Upgrade to Spring Boot 3.5.8
This PR upgrades Redis OM Spring to Spring Boot 3.5.8, Spring Data Redis 3.5.6, and Jedis 6.0.0, and addresses all deprecation warnings in preparation for Spring Boot 4.0.
🔄 Dependency Updates
🔧 Breaking Changes
Jedis 6.0.0 Query Escaping
Jedis 6.0.0 changed how it handles search query quoting for RediSearch. Multi-word search terms now require double quotes (") instead of single quotes (').
Before (Jedis 5.2.0):
SearchResult result = ops.search(new Query("@title:'hello world'"));
After (Jedis 6.0.0):
SearchResult result = ops.search(new Query("@title:"hello world""));
Who is affected:
Who is NOT affected:
🛠️ Technical Improvements
Deprecated API Migration
Replaced deprecated QueryMethodEvaluationContextProvider with the new ValueExpressionDelegate API introduced in Spring Data 3.4:
This migration prepares the codebase for Spring Boot 4.0 compatibility where the deprecated API will be removed.
📚 Documentation
✅ Testing
🎯 Spring Boot 3.5.x Highlights
📋 Migration Steps for Users
- Review all custom query strings
- Replace single quotes with double quotes around multi-word search terms
- Test your custom queries thoroughly
See the docs/content/modules/ROOT/pages/migration-guide.adoc for detailed instructions and examples.