Skip to content

Commit 083f984

Browse files
mp911desothawo
authored andcommitted
Adopt to deprecation removals in Commons.
Closes #3008
1 parent 8546222 commit 083f984

16 files changed

+80
-102
lines changed

src/main/java/org/springframework/data/elasticsearch/repository/query/AbstractElasticsearchRepositoryQuery.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424
import org.springframework.data.elasticsearch.core.query.BaseQuery;
2525
import org.springframework.data.elasticsearch.core.query.DeleteQuery;
2626
import org.springframework.data.elasticsearch.core.query.Query;
27+
import org.springframework.data.expression.ValueEvaluationContextProvider;
2728
import org.springframework.data.repository.query.ParametersParameterAccessor;
2829
import org.springframework.data.repository.query.QueryMethod;
29-
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
3030
import org.springframework.data.repository.query.RepositoryQuery;
3131
import org.springframework.data.repository.query.ResultProcessor;
3232
import org.springframework.data.util.StreamUtils;
@@ -49,11 +49,10 @@ public abstract class AbstractElasticsearchRepositoryQuery implements Repository
4949
protected ElasticsearchQueryMethod queryMethod;
5050
protected final ElasticsearchOperations elasticsearchOperations;
5151
protected final ElasticsearchConverter elasticsearchConverter;
52-
protected final QueryMethodEvaluationContextProvider evaluationContextProvider;
52+
protected final ValueEvaluationContextProvider evaluationContextProvider;
5353

5454
public AbstractElasticsearchRepositoryQuery(ElasticsearchQueryMethod queryMethod,
55-
ElasticsearchOperations elasticsearchOperations,
56-
QueryMethodEvaluationContextProvider evaluationContextProvider) {
55+
ElasticsearchOperations elasticsearchOperations, ValueEvaluationContextProvider evaluationContextProvider) {
5756

5857
Assert.notNull(queryMethod, "queryMethod must not be null");
5958
Assert.notNull(elasticsearchOperations, "elasticsearchOperations must not be null");

src/main/java/org/springframework/data/elasticsearch/repository/query/AbstractReactiveElasticsearchRepositoryQuery.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import reactor.core.publisher.Mono;
2020

2121
import org.reactivestreams.Publisher;
22+
2223
import org.springframework.core.convert.converter.Converter;
2324
import org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperations;
2425
import org.springframework.data.elasticsearch.core.SearchHit;
@@ -32,10 +33,10 @@
3233
import org.springframework.data.elasticsearch.core.query.Query;
3334
import org.springframework.data.elasticsearch.repository.query.ReactiveElasticsearchQueryExecution.ResultProcessingConverter;
3435
import org.springframework.data.elasticsearch.repository.query.ReactiveElasticsearchQueryExecution.ResultProcessingExecution;
36+
import org.springframework.data.expression.ValueEvaluationContextProvider;
3537
import org.springframework.data.mapping.context.MappingContext;
3638
import org.springframework.data.repository.query.ParameterAccessor;
3739
import org.springframework.data.repository.query.QueryMethod;
38-
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
3940
import org.springframework.data.repository.query.RepositoryQuery;
4041
import org.springframework.data.repository.query.ResultProcessor;
4142
import org.springframework.util.Assert;
@@ -52,11 +53,11 @@ abstract class AbstractReactiveElasticsearchRepositoryQuery implements Repositor
5253

5354
protected final ReactiveElasticsearchQueryMethod queryMethod;
5455
private final ReactiveElasticsearchOperations elasticsearchOperations;
55-
protected final QueryMethodEvaluationContextProvider evaluationContextProvider;
56+
protected final ValueEvaluationContextProvider evaluationContextProvider;
5657

5758
AbstractReactiveElasticsearchRepositoryQuery(ReactiveElasticsearchQueryMethod queryMethod,
5859
ReactiveElasticsearchOperations elasticsearchOperations,
59-
QueryMethodEvaluationContextProvider evaluationContextProvider) {
60+
ValueEvaluationContextProvider evaluationContextProvider) {
6061

6162
Assert.notNull(queryMethod, "queryMethod must not be null");
6263
Assert.notNull(elasticsearchOperations, "elasticsearchOperations must not be null");
@@ -135,8 +136,7 @@ private ReactiveElasticsearchQueryExecution getExecutionToWrap(ElasticsearchPara
135136

136137
if (isDeleteQuery()) {
137138
return (query, type, targetType, indexCoordinates) -> operations
138-
.delete(DeleteQuery.builder(query).build(), type, indexCoordinates)
139-
.map(ByQueryResponse::getDeleted);
139+
.delete(DeleteQuery.builder(query).build(), type, indexCoordinates).map(ByQueryResponse::getDeleted);
140140
} else if (isCountQuery()) {
141141
return (query, type, targetType, indexCoordinates) -> operations.count(query, type, indexCoordinates);
142142
} else if (isExistsQuery()) {

src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchPartQuery.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import org.springframework.data.elasticsearch.core.query.BaseQuery;
2121
import org.springframework.data.elasticsearch.repository.query.parser.ElasticsearchQueryCreator;
2222
import org.springframework.data.mapping.context.MappingContext;
23-
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
23+
import org.springframework.data.repository.query.ValueExpressionDelegate;
2424
import org.springframework.data.repository.query.parser.PartTree;
2525

2626
/**
@@ -40,8 +40,8 @@ public class ElasticsearchPartQuery extends AbstractElasticsearchRepositoryQuery
4040
private final MappingContext<?, ElasticsearchPersistentProperty> mappingContext;
4141

4242
public ElasticsearchPartQuery(ElasticsearchQueryMethod method, ElasticsearchOperations elasticsearchOperations,
43-
QueryMethodEvaluationContextProvider evaluationContextProvider) {
44-
super(method, elasticsearchOperations, evaluationContextProvider);
43+
ValueExpressionDelegate valueExpressionDelegate) {
44+
super(method, elasticsearchOperations, valueExpressionDelegate.createValueContextProvider(method.getParameters()));
4545
this.tree = new PartTree(queryMethod.getName(), queryMethod.getResultProcessor().getReturnedType().getDomainType());
4646
this.mappingContext = elasticsearchConverter.getMappingContext();
4747
}

src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchQueryMethod.java

+9-19
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,13 @@
4343
import org.springframework.data.elasticsearch.core.query.ScriptedField;
4444
import org.springframework.data.elasticsearch.core.query.SourceFilter;
4545
import org.springframework.data.elasticsearch.repository.support.QueryStringProcessor;
46+
import org.springframework.data.expression.ValueEvaluationContextProvider;
4647
import org.springframework.data.mapping.context.MappingContext;
4748
import org.springframework.data.projection.ProjectionFactory;
4849
import org.springframework.data.repository.core.RepositoryMetadata;
4950
import org.springframework.data.repository.query.Parameters;
5051
import org.springframework.data.repository.query.ParametersSource;
5152
import org.springframework.data.repository.query.QueryMethod;
52-
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
5353
import org.springframework.data.repository.util.QueryExecutionConverters;
5454
import org.springframework.data.repository.util.ReactiveWrapperConverters;
5555
import org.springframework.data.util.TypeInformation;
@@ -102,13 +102,6 @@ public ElasticsearchQueryMethod(Method method, RepositoryMetadata repositoryMeta
102102
verifyCountQueryTypes();
103103
}
104104

105-
@SuppressWarnings("removal")
106-
@Override
107-
@Deprecated
108-
protected Parameters<?, ?> createParameters(Method method, TypeInformation<?> domainType) {
109-
return new ElasticsearchParameters(ParametersSource.of(method));
110-
}
111-
112105
@Override
113106
protected Parameters<?, ?> createParameters(ParametersSource parametersSource) {
114107
return new ElasticsearchParameters(parametersSource);
@@ -302,8 +295,7 @@ public boolean hasCountQueryAnnotation() {
302295
*/
303296
@Nullable
304297
SourceFilter getSourceFilter(ElasticsearchParametersParameterAccessor parameterAccessor,
305-
ElasticsearchConverter converter,
306-
QueryMethodEvaluationContextProvider evaluationContextProvider) {
298+
ElasticsearchConverter converter, ValueEvaluationContextProvider evaluationContextProvider) {
307299

308300
if (sourceFilters == null || (sourceFilters.includes().length == 0 && sourceFilters.excludes().length == 0)) {
309301
return null;
@@ -313,20 +305,20 @@ SourceFilter getSourceFilter(ElasticsearchParametersParameterAccessor parameterA
313305
FetchSourceFilterBuilder fetchSourceFilterBuilder = new FetchSourceFilterBuilder();
314306

315307
if (sourceFilters.includes().length > 0) {
316-
fetchSourceFilterBuilder.withIncludes(mapParameters(sourceFilters.includes(), parameterAccessor,
317-
conversionService, evaluationContextProvider));
308+
fetchSourceFilterBuilder.withIncludes(
309+
mapParameters(sourceFilters.includes(), parameterAccessor, conversionService, evaluationContextProvider));
318310
}
319311

320312
if (sourceFilters.excludes().length > 0) {
321-
fetchSourceFilterBuilder.withExcludes(mapParameters(sourceFilters.excludes(), parameterAccessor,
322-
conversionService, evaluationContextProvider));
313+
fetchSourceFilterBuilder.withExcludes(
314+
mapParameters(sourceFilters.excludes(), parameterAccessor, conversionService, evaluationContextProvider));
323315
}
324316

325317
return fetchSourceFilterBuilder.build();
326318
}
327319

328320
private String[] mapParameters(String[] source, ElasticsearchParametersParameterAccessor parameterAccessor,
329-
ConversionService conversionService, QueryMethodEvaluationContextProvider evaluationContextProvider) {
321+
ConversionService conversionService, ValueEvaluationContextProvider evaluationContextProvider) {
330322

331323
List<String> fieldNames = new ArrayList<>();
332324

@@ -378,8 +370,7 @@ private Class<?> potentiallyUnwrapReturnTypeFor(RepositoryMetadata metadata, Met
378370
}
379371

380372
void addMethodParameter(BaseQuery query, ElasticsearchParametersParameterAccessor parameterAccessor,
381-
ElasticsearchConverter elasticsearchConverter,
382-
QueryMethodEvaluationContextProvider evaluationContextProvider) {
373+
ElasticsearchConverter elasticsearchConverter, ValueEvaluationContextProvider evaluationContextProvider) {
383374

384375
if (hasAnnotatedHighlight()) {
385376
var highlightQuery = getAnnotatedHighlightQuery(new HighlightConverter(parameterAccessor,
@@ -415,8 +406,7 @@ void addMethodParameter(BaseQuery query, ElasticsearchParametersParameterAccesso
415406
});
416407

417408
var needToAddSourceFilter = sourceFilter == null
418-
&& !(methodParameters.getRuntimeFields().isEmpty()
419-
&& methodParameters.getScriptedFields().isEmpty());
409+
&& !(methodParameters.getRuntimeFields().isEmpty() && methodParameters.getScriptedFields().isEmpty());
420410
if (needToAddSourceFilter) {
421411
query.addSourceFilter(FetchSourceFilter.of(b -> b.withIncludes("*")));
422412
}

src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchStringQuery.java

+5-6
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import org.springframework.data.elasticsearch.core.query.BaseQuery;
2121
import org.springframework.data.elasticsearch.core.query.StringQuery;
2222
import org.springframework.data.elasticsearch.repository.support.QueryStringProcessor;
23-
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
23+
import org.springframework.data.repository.query.ValueExpressionDelegate;
2424
import org.springframework.util.Assert;
2525

2626
/**
@@ -38,11 +38,11 @@ public class ElasticsearchStringQuery extends AbstractElasticsearchRepositoryQue
3838
private final String queryString;
3939

4040
public ElasticsearchStringQuery(ElasticsearchQueryMethod queryMethod, ElasticsearchOperations elasticsearchOperations,
41-
String queryString, QueryMethodEvaluationContextProvider evaluationContextProvider) {
42-
super(queryMethod, elasticsearchOperations, evaluationContextProvider);
41+
String queryString, ValueExpressionDelegate valueExpressionDelegate) {
42+
super(queryMethod, elasticsearchOperations,
43+
valueExpressionDelegate.createValueContextProvider(queryMethod.getParameters()));
4344

4445
Assert.notNull(queryString, "Query cannot be empty");
45-
Assert.notNull(evaluationContextProvider, "ExpressionEvaluationContextProvider must not be null");
4646

4747
this.queryString = queryString;
4848
}
@@ -67,8 +67,7 @@ protected BaseQuery createQuery(ElasticsearchParametersParameterAccessor paramet
6767
var processed = new QueryStringProcessor(queryString, queryMethod, conversionService, evaluationContextProvider)
6868
.createQuery(parameterAccessor);
6969

70-
return new StringQuery(processed)
71-
.addSort(parameterAccessor.getSort());
70+
return new StringQuery(processed).addSort(parameterAccessor.getSort());
7271
}
7372

7473
}

src/main/java/org/springframework/data/elasticsearch/repository/query/HighlightConverter.java

+4-6
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
import org.springframework.data.elasticsearch.core.query.highlight.HighlightField;
2626
import org.springframework.data.elasticsearch.core.query.highlight.HighlightParameters;
2727
import org.springframework.data.elasticsearch.repository.support.QueryStringProcessor;
28+
import org.springframework.data.expression.ValueEvaluationContextProvider;
2829
import org.springframework.data.repository.query.QueryMethod;
29-
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
3030
import org.springframework.util.Assert;
3131

3232
/**
@@ -38,13 +38,11 @@ public class HighlightConverter {
3838

3939
private final ElasticsearchParametersParameterAccessor parameterAccessor;
4040
private final ConversionService conversionService;
41-
private final QueryMethodEvaluationContextProvider evaluationContextProvider;
41+
private final ValueEvaluationContextProvider evaluationContextProvider;
4242
private final QueryMethod queryMethod;
4343

44-
HighlightConverter(ElasticsearchParametersParameterAccessor parameterAccessor,
45-
ConversionService conversionService,
46-
QueryMethodEvaluationContextProvider evaluationContextProvider,
47-
QueryMethod queryMethod) {
44+
HighlightConverter(ElasticsearchParametersParameterAccessor parameterAccessor, ConversionService conversionService,
45+
ValueEvaluationContextProvider evaluationContextProvider, QueryMethod queryMethod) {
4846

4947
Assert.notNull(parameterAccessor, "parameterAccessor must not be null");
5048
Assert.notNull(conversionService, "conversionService must not be null");

src/main/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchQueryMethod.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515
*/
1616
package org.springframework.data.elasticsearch.repository.query;
1717

18-
import static org.springframework.data.repository.util.ClassUtils.*;
19-
2018
import reactor.core.publisher.Mono;
2119

2220
import java.lang.reflect.Method;
@@ -36,6 +34,7 @@
3634
import org.springframework.data.repository.util.ReactiveWrapperConverters;
3735
import org.springframework.data.util.Lazy;
3836
import org.springframework.data.util.ReactiveWrappers;
37+
import org.springframework.data.util.ReflectionUtils;
3938
import org.springframework.data.util.TypeInformation;
4039
import org.springframework.util.ClassUtils;
4140

@@ -55,7 +54,7 @@ public ReactiveElasticsearchQueryMethod(Method method, RepositoryMetadata metada
5554

5655
super(method, metadata, factory, mappingContext);
5756

58-
if (hasParameterOfType(method, Pageable.class)) {
57+
if (ReflectionUtils.hasParameterOfType(method, Pageable.class)) {
5958

6059
TypeInformation<?> returnType = TypeInformation.fromReturnTypeOf(method);
6160
boolean multiWrapper = ReactiveWrappers.isMultiValueType(returnType.getType());
@@ -75,7 +74,7 @@ public ReactiveElasticsearchQueryMethod(Method method, RepositoryMetadata metada
7574
method));
7675
}
7776

78-
if (hasParameterOfType(method, Sort.class)) {
77+
if (ReflectionUtils.hasParameterOfType(method, Sort.class)) {
7978
throw new IllegalStateException(String.format("Method must not have Pageable *and* Sort parameter. "
8079
+ "Use sorting capabilities on Pageable instead! Offending method: %s", method));
8180
}

src/main/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchStringQuery.java

+4-7
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import org.springframework.data.elasticsearch.core.query.BaseQuery;
2121
import org.springframework.data.elasticsearch.core.query.StringQuery;
2222
import org.springframework.data.elasticsearch.repository.support.QueryStringProcessor;
23-
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
23+
import org.springframework.data.repository.query.ValueExpressionDelegate;
2424
import org.springframework.util.Assert;
2525

2626
/**
@@ -32,23 +32,20 @@
3232
public class ReactiveElasticsearchStringQuery extends AbstractReactiveElasticsearchRepositoryQuery {
3333

3434
private final String query;
35-
private final QueryMethodEvaluationContextProvider evaluationContextProvider;
3635

3736
public ReactiveElasticsearchStringQuery(ReactiveElasticsearchQueryMethod queryMethod,
38-
ReactiveElasticsearchOperations operations, QueryMethodEvaluationContextProvider evaluationContextProvider) {
37+
ReactiveElasticsearchOperations operations, ValueExpressionDelegate evaluationContextProvider) {
3938

4039
this(queryMethod.getAnnotatedQuery(), queryMethod, operations, evaluationContextProvider);
4140
}
4241

4342
public ReactiveElasticsearchStringQuery(String query, ReactiveElasticsearchQueryMethod queryMethod,
44-
ReactiveElasticsearchOperations operations, QueryMethodEvaluationContextProvider evaluationContextProvider) {
45-
super(queryMethod, operations, evaluationContextProvider);
43+
ReactiveElasticsearchOperations operations, ValueExpressionDelegate valueExpressionDelegate) {
44+
super(queryMethod, operations, valueExpressionDelegate.createValueContextProvider(queryMethod.getParameters()));
4645

4746
Assert.notNull(query, "query must not be null");
48-
Assert.notNull(evaluationContextProvider, "evaluationContextProvider must not be null");
4947

5048
this.query = query;
51-
this.evaluationContextProvider = evaluationContextProvider;
5249
}
5350

5451
@Override

src/main/java/org/springframework/data/elasticsearch/repository/query/ReactivePartTreeElasticsearchQuery.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
import org.springframework.data.elasticsearch.core.query.BaseQuery;
2020
import org.springframework.data.elasticsearch.core.query.CriteriaQuery;
2121
import org.springframework.data.elasticsearch.repository.query.parser.ElasticsearchQueryCreator;
22-
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
2322
import org.springframework.data.repository.query.ResultProcessor;
23+
import org.springframework.data.repository.query.ValueExpressionDelegate;
2424
import org.springframework.data.repository.query.parser.PartTree;
2525

2626
/**
@@ -34,9 +34,9 @@ public class ReactivePartTreeElasticsearchQuery extends AbstractReactiveElastics
3434
private final PartTree tree;
3535

3636
public ReactivePartTreeElasticsearchQuery(ReactiveElasticsearchQueryMethod queryMethod,
37-
ReactiveElasticsearchOperations elasticsearchOperations,
38-
QueryMethodEvaluationContextProvider evaluationContextProvider) {
39-
super(queryMethod, elasticsearchOperations, evaluationContextProvider);
37+
ReactiveElasticsearchOperations elasticsearchOperations, ValueExpressionDelegate valueExpressionDelegate) {
38+
super(queryMethod, elasticsearchOperations,
39+
valueExpressionDelegate.createValueContextProvider(queryMethod.getParameters()));
4040

4141
ResultProcessor processor = queryMethod.getResultProcessor();
4242
this.tree = new PartTree(queryMethod.getName(), processor.getReturnedType().getDomainType());

src/main/java/org/springframework/data/elasticsearch/repository/support/ElasticsearchRepositoryFactory.java

+9-10
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@
3737
import org.springframework.data.repository.query.QueryByExampleExecutor;
3838
import org.springframework.data.repository.query.QueryLookupStrategy;
3939
import org.springframework.data.repository.query.QueryLookupStrategy.Key;
40-
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
4140
import org.springframework.data.repository.query.RepositoryQuery;
41+
import org.springframework.data.repository.query.ValueExpressionDelegate;
4242
import org.springframework.lang.Nullable;
4343
import org.springframework.util.Assert;
4444

@@ -96,16 +96,16 @@ private static boolean isQueryDslRepository(Class<?> repositoryInterface) {
9696

9797
@Override
9898
protected Optional<QueryLookupStrategy> getQueryLookupStrategy(@Nullable Key key,
99-
QueryMethodEvaluationContextProvider evaluationContextProvider) {
100-
return Optional.of(new ElasticsearchQueryLookupStrategy(evaluationContextProvider));
99+
ValueExpressionDelegate valueExpressionDelegate) {
100+
return Optional.of(new ElasticsearchQueryLookupStrategy(valueExpressionDelegate));
101101
}
102102

103103
private class ElasticsearchQueryLookupStrategy implements QueryLookupStrategy {
104104

105-
private final QueryMethodEvaluationContextProvider evaluationContextProvider;
105+
private final ValueExpressionDelegate valueExpressionDelegate;
106106

107-
ElasticsearchQueryLookupStrategy(QueryMethodEvaluationContextProvider evaluationContextProvider) {
108-
this.evaluationContextProvider = evaluationContextProvider;
107+
ElasticsearchQueryLookupStrategy(ValueExpressionDelegate valueExpressionDelegate) {
108+
this.valueExpressionDelegate = valueExpressionDelegate;
109109
}
110110

111111
/*
@@ -122,13 +122,12 @@ public RepositoryQuery resolveQuery(Method method, RepositoryMetadata metadata,
122122

123123
if (namedQueries.hasQuery(namedQueryName)) {
124124
String namedQuery = namedQueries.getQuery(namedQueryName);
125-
return new ElasticsearchStringQuery(queryMethod, elasticsearchOperations, namedQuery,
126-
evaluationContextProvider);
125+
return new ElasticsearchStringQuery(queryMethod, elasticsearchOperations, namedQuery, valueExpressionDelegate);
127126
} else if (queryMethod.hasAnnotatedQuery()) {
128127
return new ElasticsearchStringQuery(queryMethod, elasticsearchOperations, queryMethod.getAnnotatedQuery(),
129-
evaluationContextProvider);
128+
valueExpressionDelegate);
130129
}
131-
return new ElasticsearchPartQuery(queryMethod, elasticsearchOperations, evaluationContextProvider);
130+
return new ElasticsearchPartQuery(queryMethod, elasticsearchOperations, valueExpressionDelegate);
132131
}
133132
}
134133

0 commit comments

Comments
 (0)