Skip to content

Commit 3c96ba0

Browse files
committed
refactor: replace deprecated QueryMethodEvaluationContextProvider with 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.
1 parent a8c9f8c commit 3c96ba0

File tree

4 files changed

+45
-45
lines changed

4 files changed

+45
-45
lines changed

redis-om-spring/src/main/java/com/redis/om/spring/repository/query/RediSearchQuery.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -202,18 +202,18 @@ private static FieldType getRedisFieldTypeForMapValue(Class<?> fieldType) {
202202
* <li>Initializes pagination, sorting, and projection capabilities</li>
203203
* </ul>
204204
*
205-
* @param queryMethod the repository method metadata containing signature and return type information
206-
* @param metadata the repository metadata providing domain type and interface details
207-
* @param indexer the RediSearch indexer for managing search indexes and field mappings
208-
* @param evaluationContextProvider Spring Data's context provider for SpEL expression evaluation
209-
* @param keyValueOperations low-level Redis key-value operations template
210-
* @param rmo Redis modules operations providing access to RediSearch, RedisJSON, and
211-
* probabilistic data structures
212-
* @param queryCreator the query creator class for building Redis queries (currently unused but reserved
213-
* for future extensibility)
214-
* @param gsonBuilder pre-configured Gson builder for JSON serialization/deserialization of Redis
215-
* documents
216-
* @param redisOMProperties configuration properties for Redis OM Spring behavior and defaults
205+
* @param queryMethod the repository method metadata containing signature and return type information
206+
* @param metadata the repository metadata providing domain type and interface details
207+
* @param indexer the RediSearch indexer for managing search indexes and field mappings
208+
* @param valueExpressionDelegate Spring Data's delegate for value expression evaluation in query methods
209+
* @param keyValueOperations low-level Redis key-value operations template
210+
* @param rmo Redis modules operations providing access to RediSearch, RedisJSON, and
211+
* probabilistic data structures
212+
* @param queryCreator the query creator class for building Redis queries (currently unused but reserved
213+
* for future extensibility)
214+
* @param gsonBuilder pre-configured Gson builder for JSON serialization/deserialization of Redis
215+
* documents
216+
* @param redisOMProperties configuration properties for Redis OM Spring behavior and defaults
217217
*
218218
*/
219219
@SuppressWarnings(
@@ -223,7 +223,7 @@ public RediSearchQuery(//
223223
QueryMethod queryMethod, //
224224
RepositoryMetadata metadata, //
225225
RediSearchIndexer indexer, //
226-
QueryMethodEvaluationContextProvider evaluationContextProvider, //
226+
org.springframework.data.repository.query.ValueExpressionDelegate valueExpressionDelegate, //
227227
KeyValueOperations keyValueOperations, //
228228
RedisModulesOperations<?> rmo, //
229229
Class<? extends AbstractQueryCreator<?, ?>> queryCreator, //

redis-om-spring/src/main/java/com/redis/om/spring/repository/query/RedisEnhancedQuery.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -161,17 +161,17 @@ public class RedisEnhancedQuery implements RepositoryQuery {
161161
* <li>Set up parameter binding for safe query execution</li>
162162
* </ul>
163163
*
164-
* @param queryMethod the Spring Data query method metadata containing method signature,
165-
* return type, and parameter information
166-
* @param metadata the repository metadata providing domain type and interface information
167-
* @param indexer the RediSearch indexer for index name resolution and field mapping
168-
* @param evaluationContextProvider context provider for SpEL expression evaluation
169-
* @param keyValueOperations Spring Data KeyValue operations for basic entity operations
170-
* @param redisOperations low-level Redis operations for direct Redis access
171-
* @param rmo Redis modules operations providing access to RediSearch, RedisJSON, and other
172-
* modules
173-
* @param queryCreator the query creator class for custom query construction (currently unused)
174-
* @param redisOMProperties configuration properties for Redis OM behavior and defaults
164+
* @param queryMethod the Spring Data query method metadata containing method signature,
165+
* return type, and parameter information
166+
* @param metadata the repository metadata providing domain type and interface information
167+
* @param indexer the RediSearch indexer for index name resolution and field mapping
168+
* @param valueExpressionDelegate Spring Data's delegate for value expression evaluation in query methods
169+
* @param keyValueOperations Spring Data KeyValue operations for basic entity operations
170+
* @param redisOperations low-level Redis operations for direct Redis access
171+
* @param rmo Redis modules operations providing access to RediSearch, RedisJSON, and other
172+
* modules
173+
* @param queryCreator the query creator class for custom query construction (currently unused)
174+
* @param redisOMProperties configuration properties for Redis OM behavior and defaults
175175
*
176176
*/
177177
@SuppressWarnings(
@@ -180,7 +180,7 @@ public class RedisEnhancedQuery implements RepositoryQuery {
180180
public RedisEnhancedQuery(QueryMethod queryMethod, //
181181
RepositoryMetadata metadata, //
182182
RediSearchIndexer indexer, //
183-
QueryMethodEvaluationContextProvider evaluationContextProvider, //
183+
org.springframework.data.repository.query.ValueExpressionDelegate valueExpressionDelegate, //
184184
KeyValueOperations keyValueOperations, //
185185
RedisOperations<?, ?> redisOperations, //
186186
RedisModulesOperations<?> rmo, //

redis-om-spring/src/main/java/com/redis/om/spring/repository/support/RedisDocumentRepositoryFactory.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
import org.springframework.data.repository.query.QueryLookupStrategy;
2121
import org.springframework.data.repository.query.QueryLookupStrategy.Key;
2222
import org.springframework.data.repository.query.QueryMethod;
23-
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
2423
import org.springframework.data.repository.query.RepositoryQuery;
24+
import org.springframework.data.repository.query.ValueExpressionDelegate;
2525
import org.springframework.data.repository.query.parser.AbstractQueryCreator;
2626
import org.springframework.lang.Nullable;
2727
import org.springframework.util.Assert;
@@ -222,9 +222,9 @@ protected Class<?> getRepositoryBaseClass(RepositoryMetadata metadata) {
222222

223223
@Override
224224
protected Optional<QueryLookupStrategy> getQueryLookupStrategy(@Nullable Key key, //
225-
QueryMethodEvaluationContextProvider evaluationContextProvider //
225+
ValueExpressionDelegate valueExpressionDelegate //
226226
) {
227-
return Optional.of(new RediSearchQueryLookupStrategy(evaluationContextProvider, //
227+
return Optional.of(new RediSearchQueryLookupStrategy(valueExpressionDelegate, //
228228
this.keyValueOperations, //
229229
this.rmo, //
230230
this.indexer, //
@@ -237,7 +237,7 @@ protected Optional<QueryLookupStrategy> getQueryLookupStrategy(@Nullable Key key
237237
}
238238

239239
private record RediSearchQueryLookupStrategy( //
240-
QueryMethodEvaluationContextProvider evaluationContextProvider, //
240+
ValueExpressionDelegate valueExpressionDelegate, //
241241
KeyValueOperations keyValueOperations, //
242242
RedisModulesOperations<?> rmo, //
243243
RediSearchIndexer indexer, //
@@ -247,12 +247,12 @@ private record RediSearchQueryLookupStrategy( //
247247
GsonBuilder gsonBuilder) implements QueryLookupStrategy {
248248

249249
/**
250-
* @param evaluationContextProvider
250+
* @param valueExpressionDelegate
251251
* @param keyValueOperations
252252
* @param queryCreator
253253
*/
254254
private RediSearchQueryLookupStrategy {
255-
Assert.notNull(evaluationContextProvider, "EvaluationContextProvider must not be null!");
255+
Assert.notNull(valueExpressionDelegate, "ValueExpressionDelegate must not be null!");
256256
Assert.notNull(keyValueOperations, "KeyValueOperations must not be null!");
257257
Assert.notNull(rmo, "RedisModulesOperations must not be null!");
258258
Assert.notNull(indexer, "RediSearchIndexer must not be null!");
@@ -288,23 +288,23 @@ public RepositoryQuery resolveQuery( //
288288
QueryMethod.class, //
289289
RepositoryMetadata.class, //
290290
RediSearchIndexer.class, //
291-
QueryMethodEvaluationContextProvider.class, //
291+
ValueExpressionDelegate.class, //
292292
KeyValueOperations.class, //
293293
RedisModulesOperations.class, //
294294
Class.class, //
295295
GsonBuilder.class, //
296296
RedisOMProperties.class);
297297

298298
Assert.state(constructor != null, String.format(
299-
"Constructor %s(QueryMethod, RepositoryMetadata, RediSearchIndexer, EvaluationContextProvider, KeyValueOperations, RedisModulesOperations, Class, GsonBuilder, RedisOMSpringProperties) not available!",
299+
"Constructor %s(QueryMethod, RepositoryMetadata, RediSearchIndexer, ValueExpressionDelegate, KeyValueOperations, RedisModulesOperations, Class, GsonBuilder, RedisOMSpringProperties) not available!",
300300
ClassUtils.getShortName(this.repositoryQueryType)));
301301

302302
return BeanUtils.instantiateClass( //
303303
constructor, //
304304
queryMethod, //
305305
metadata, //
306306
indexer, //
307-
evaluationContextProvider, //
307+
valueExpressionDelegate, //
308308
this.keyValueOperations, //
309309
this.rmo, //
310310
this.queryCreator, //

redis-om-spring/src/main/java/com/redis/om/spring/repository/support/RedisEnhancedRepositoryFactory.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
import org.springframework.data.repository.query.QueryLookupStrategy;
2525
import org.springframework.data.repository.query.QueryLookupStrategy.Key;
2626
import org.springframework.data.repository.query.QueryMethod;
27-
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
2827
import org.springframework.data.repository.query.RepositoryQuery;
28+
import org.springframework.data.repository.query.ValueExpressionDelegate;
2929
import org.springframework.data.repository.query.parser.AbstractQueryCreator;
3030
import org.springframework.lang.Nullable;
3131
import org.springframework.util.Assert;
@@ -223,8 +223,8 @@ protected Class<?> getRepositoryBaseClass(RepositoryMetadata metadata) {
223223
* org.springframework.data.repository.query.EvaluationContextProvider) */
224224
@Override
225225
protected Optional<QueryLookupStrategy> getQueryLookupStrategy(@Nullable Key key,
226-
QueryMethodEvaluationContextProvider evaluationContextProvider) {
227-
return Optional.of(new RedisEnhancedQueryLookupStrategy(key, evaluationContextProvider, this.keyValueOperations, //
226+
ValueExpressionDelegate valueExpressionDelegate) {
227+
return Optional.of(new RedisEnhancedQueryLookupStrategy(key, valueExpressionDelegate, this.keyValueOperations, //
228228
this.redisOperations, //
229229
this.rmo, //
230230
this.indexer, //
@@ -240,7 +240,7 @@ protected Optional<QueryLookupStrategy> getQueryLookupStrategy(@Nullable Key key
240240
*/
241241
private static class RedisEnhancedQueryLookupStrategy implements QueryLookupStrategy {
242242

243-
private final QueryMethodEvaluationContextProvider evaluationContextProvider;
243+
private final ValueExpressionDelegate valueExpressionDelegate;
244244
private final KeyValueOperations keyValueOperations;
245245
private final RedisModulesOperations<?> rmo;
246246
private final RedisOperations<?, ?> redisOperations;
@@ -252,14 +252,14 @@ private static class RedisEnhancedQueryLookupStrategy implements QueryLookupStra
252252

253253
/**
254254
* @param key
255-
* @param evaluationContextProvider
255+
* @param valueExpressionDelegate
256256
* @param keyValueOperations
257257
* @param queryCreator
258258
* @since 1.1
259259
*/
260260
public RedisEnhancedQueryLookupStrategy( //
261261
@Nullable Key key, //
262-
QueryMethodEvaluationContextProvider evaluationContextProvider, //
262+
ValueExpressionDelegate valueExpressionDelegate, //
263263
KeyValueOperations keyValueOperations, //
264264
RedisOperations<?, ?> redisOperations, //
265265
RedisModulesOperations<?> rmo, //
@@ -268,15 +268,15 @@ public RedisEnhancedQueryLookupStrategy( //
268268
Class<? extends AbstractQueryCreator<?, ?>> queryCreator, //
269269
Class<? extends RepositoryQuery> repositoryQueryType) {
270270

271-
Assert.notNull(evaluationContextProvider, "EvaluationContextProvider must not be null!");
271+
Assert.notNull(valueExpressionDelegate, "ValueExpressionDelegate must not be null!");
272272
Assert.notNull(keyValueOperations, "KeyValueOperations must not be null!");
273273
Assert.notNull(redisOperations, "RedisOperations must not be null!");
274274
Assert.notNull(rmo, "RedisModulesOperations must not be null!");
275275
Assert.notNull(properties, "RedisOMSpringProperties must not be null!");
276276
Assert.notNull(queryCreator, "Query creator type must not be null!");
277277
Assert.notNull(repositoryQueryType, "RepositoryQueryType type must not be null!");
278278

279-
this.evaluationContextProvider = evaluationContextProvider;
279+
this.valueExpressionDelegate = valueExpressionDelegate;
280280
this.keyValueOperations = keyValueOperations;
281281
this.redisOperations = redisOperations;
282282
this.rmo = rmo;
@@ -313,22 +313,22 @@ public RepositoryQuery resolveQuery( //
313313
QueryMethod.class, //
314314
RepositoryMetadata.class, //
315315
RediSearchIndexer.class, //
316-
QueryMethodEvaluationContextProvider.class, //
316+
ValueExpressionDelegate.class, //
317317
KeyValueOperations.class, //
318318
RedisOperations.class, //
319319
RedisModulesOperations.class, //
320320
Class.class, //
321321
RedisOMProperties.class);
322322

323323
Assert.state(constructor != null, String.format(
324-
"Constructor %s(QueryMethod, RepositoryMetadata, RediSearchIndexer, EvaluationContextProvider, KeyValueOperations, RedisOperations, RedisModulesOperations, Class, RedisOMSpringProperties) not available!",
324+
"Constructor %s(QueryMethod, RepositoryMetadata, RediSearchIndexer, ValueExpressionDelegate, KeyValueOperations, RedisOperations, RedisModulesOperations, Class, RedisOMSpringProperties) not available!",
325325
ClassUtils.getShortName(this.repositoryQueryType)));
326326

327327
return BeanUtils.instantiateClass(constructor, //
328328
queryMethod, //
329329
metadata, //
330330
indexer, //
331-
evaluationContextProvider, //
331+
valueExpressionDelegate, //
332332
this.keyValueOperations, //
333333
this.redisOperations, //
334334
this.rmo, //

0 commit comments

Comments
 (0)