Skip to content

Commit 9f01de3

Browse files
committed
Polishing.
Deprecations, missing Override annotations, test fix.
1 parent 51b0948 commit 9f01de3

11 files changed

+38
-19
lines changed

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java

+1
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ public AbstractMongoQuery(MongoQueryMethod method, MongoOperations operations,
107107
this.evaluationContextProvider = expressionSupportHolder.createValueContextProvider(method.getParameters());
108108
}
109109

110+
@Override
110111
public MongoQueryMethod getQueryMethod() {
111112
return method;
112113
}

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractReactiveMongoQuery.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,12 @@ public AbstractReactiveMongoQuery(ReactiveMongoQueryMethod method, ReactiveMongo
112112
this.updateOps = operations.update(type);
113113
}
114114

115+
@Override
115116
public MongoQueryMethod getQueryMethod() {
116117
return method;
117118
}
118119

120+
@Override
119121
public Publisher<Object> execute(Object[] parameters) {
120122

121123
return method.hasReactiveWrapperParameter() ? executeDeferred(parameters)
@@ -419,7 +421,10 @@ protected Mono<ParameterBindingDocumentCodec> getParameterBindingCodec() {
419421
* @param accessor must not be {@literal null}.
420422
* @return a {@link Mono} emitting the {@link SpELExpressionEvaluator} when ready.
421423
* @since 3.4
424+
* @deprecated since 4.3, use
425+
* {@link #getValueExpressionEvaluatorLater(ExpressionDependencies, MongoParameterAccessor)} instead
422426
*/
427+
@Deprecated(since = "4.3")
423428
protected Mono<SpELExpressionEvaluator> getSpelEvaluatorFor(ExpressionDependencies dependencies,
424429
MongoParameterAccessor accessor) {
425430

@@ -473,7 +478,6 @@ public <T> T evaluate(String expressionString) {
473478
return (T) expression.evaluate(evaluationContext);
474479
}
475480
};
476-
477481
});
478482
}
479483

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/PartTreeMongoQuery.java

+3
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@ public class PartTreeMongoQuery extends AbstractMongoQuery {
6161
* @param mongoOperations must not be {@literal null}.
6262
* @param expressionParser must not be {@literal null}.
6363
* @param evaluationContextProvider must not be {@literal null}.
64+
* @deprecated since 4.3, use the constructors accepting {@link ValueExpressionSupportHolder} instead.
6465
*/
66+
@Deprecated(since = "4.3")
6567
public PartTreeMongoQuery(MongoQueryMethod method, MongoOperations mongoOperations, ExpressionParser expressionParser,
6668
QueryMethodEvaluationContextProvider evaluationContextProvider) {
6769
this(method, mongoOperations,
@@ -76,6 +78,7 @@ public PartTreeMongoQuery(MongoQueryMethod method, MongoOperations mongoOperatio
7678
* @param method must not be {@literal null}.
7779
* @param mongoOperations must not be {@literal null}.
7880
* @param expressionSupportHolder must not be {@literal null}.
81+
* @since 4.3
7982
*/
8083
public PartTreeMongoQuery(MongoQueryMethod method, MongoOperations mongoOperations,
8184
ValueExpressionSupportHolder expressionSupportHolder) {

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/ReactivePartTreeMongoQuery.java

+2
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@ public class ReactivePartTreeMongoQuery extends AbstractReactiveMongoQuery {
6161
* @param mongoOperations must not be {@literal null}.
6262
* @param expressionParser must not be {@literal null}.
6363
* @param evaluationContextProvider must not be {@literal null}.
64+
* @deprecated since 4.3, use the constructors accepting {@link ValueExpressionSupportHolder} instead.
6465
*/
66+
@Deprecated(since = "4.3")
6567
public ReactivePartTreeMongoQuery(ReactiveMongoQueryMethod method, ReactiveMongoOperations mongoOperations,
6668
ExpressionParser expressionParser, ReactiveQueryMethodEvaluationContextProvider evaluationContextProvider) {
6769

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedAggregation.java

+3
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@ public class ReactiveStringBasedAggregation extends AbstractReactiveMongoQuery {
6161
* @param reactiveMongoOperations must not be {@literal null}.
6262
* @param expressionParser must not be {@literal null}.
6363
* @param evaluationContextProvider must not be {@literal null}.
64+
* @deprecated since 4.3, use the constructors accepting {@link ValueExpressionSupportHolder} instead.
6465
*/
66+
@Deprecated(since = "4.3")
6567
public ReactiveStringBasedAggregation(ReactiveMongoQueryMethod method,
6668
ReactiveMongoOperations reactiveMongoOperations, ExpressionParser expressionParser,
6769
ReactiveQueryMethodEvaluationContextProvider evaluationContextProvider) {
@@ -76,6 +78,7 @@ public ReactiveStringBasedAggregation(ReactiveMongoQueryMethod method,
7678
* @param method must not be {@literal null}.
7779
* @param reactiveMongoOperations must not be {@literal null}.
7880
* @param expressionSupportHolder must not be {@literal null}.
81+
* @since 4.3
7982
*/
8083
public ReactiveStringBasedAggregation(ReactiveMongoQueryMethod method,
8184
ReactiveMongoOperations reactiveMongoOperations, ValueExpressionSupportHolder expressionSupportHolder) {

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedMongoQuery.java

+4
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,9 @@ public class ReactiveStringBasedMongoQuery extends AbstractReactiveMongoQuery {
6767
* @param mongoOperations must not be {@literal null}.
6868
* @param expressionParser must not be {@literal null}.
6969
* @param evaluationContextProvider must not be {@literal null}.
70+
* @deprecated since 4.3, use the constructors accepting {@link ValueExpressionSupportHolder} instead.
7071
*/
72+
@Deprecated(since = "4.3")
7173
public ReactiveStringBasedMongoQuery(ReactiveMongoQueryMethod method, ReactiveMongoOperations mongoOperations,
7274
ExpressionParser expressionParser, ReactiveQueryMethodEvaluationContextProvider evaluationContextProvider) {
7375
this(method.getAnnotatedQuery(), method, mongoOperations, expressionParser, evaluationContextProvider);
@@ -82,7 +84,9 @@ public ReactiveStringBasedMongoQuery(ReactiveMongoQueryMethod method, ReactiveMo
8284
* @param method must not be {@literal null}.
8385
* @param mongoOperations must not be {@literal null}.
8486
* @param expressionParser must not be {@literal null}.
87+
* @deprecated since 4.3, use the constructors accepting {@link ValueExpressionSupportHolder} instead.
8588
*/
89+
@Deprecated(since = "4.3")
8690
public ReactiveStringBasedMongoQuery(String query, ReactiveMongoQueryMethod method,
8791
ReactiveMongoOperations mongoOperations, ExpressionParser expressionParser,
8892
ReactiveQueryMethodEvaluationContextProvider evaluationContextProvider) {

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/StringBasedAggregation.java

+2
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,9 @@ public class StringBasedAggregation extends AbstractMongoQuery {
6666
* @param mongoOperations must not be {@literal null}.
6767
* @param expressionParser must not be {@literal null}.
6868
* @param evaluationContextProvider must not be {@literal null}.
69+
* @deprecated since 4.3, use the constructors accepting {@link ValueExpressionSupportHolder} instead.
6970
*/
71+
@Deprecated(since = "4.3")
7072
public StringBasedAggregation(MongoQueryMethod method, MongoOperations mongoOperations,
7173
ExpressionParser expressionParser, QueryMethodEvaluationContextProvider evaluationContextProvider) {
7274
this(method, mongoOperations,

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/StringBasedMongoQuery.java

+4
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,9 @@ public class StringBasedMongoQuery extends AbstractMongoQuery {
5959
* @param mongoOperations must not be {@literal null}.
6060
* @param expressionParser must not be {@literal null}.
6161
* @param evaluationContextProvider must not be {@literal null}.
62+
* @deprecated since 4.3, use the constructors accepting {@link ValueExpressionSupportHolder} instead.
6263
*/
64+
@Deprecated(since = "4.3")
6365
public StringBasedMongoQuery(MongoQueryMethod method, MongoOperations mongoOperations,
6466
ExpressionParser expressionParser, QueryMethodEvaluationContextProvider evaluationContextProvider) {
6567
this(method.getAnnotatedQuery(), method, mongoOperations,
@@ -75,6 +77,7 @@ public StringBasedMongoQuery(MongoQueryMethod method, MongoOperations mongoOpera
7577
* @param method must not be {@literal null}.
7678
* @param mongoOperations must not be {@literal null}.
7779
* @param expressionSupport must not be {@literal null}.
80+
* @since 4.3
7881
*/
7982
public StringBasedMongoQuery(MongoQueryMethod method, MongoOperations mongoOperations,
8083
ValueExpressionSupportHolder expressionSupport) {
@@ -89,6 +92,7 @@ public StringBasedMongoQuery(MongoQueryMethod method, MongoOperations mongoOpera
8992
* @param method must not be {@literal null}.
9093
* @param mongoOperations must not be {@literal null}.
9194
* @param expressionSupport must not be {@literal null}.
95+
* @since 4.3
9296
*/
9397
public StringBasedMongoQuery(String query, MongoQueryMethod method, MongoOperations mongoOperations,
9498
ValueExpressionSupportHolder expressionSupport) {

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactory.java

+4-6
Original file line numberDiff line numberDiff line change
@@ -170,13 +170,11 @@ private <T, ID> MongoEntityInformation<T, ID> getEntityInformation(Class<T> doma
170170
* @author Oliver Gierke
171171
* @author Thomas Darimont
172172
*/
173-
private static class MongoQueryLookupStrategy implements QueryLookupStrategy {
173+
private record MongoQueryLookupStrategy(MongoOperations operations,
174+
MappingContext<? extends MongoPersistentEntity<?>, MongoPersistentProperty> mappingContext,
175+
ValueExpressionSupportHolder expressionSupport) implements QueryLookupStrategy {
174176

175-
private final MongoOperations operations;
176-
private final MappingContext<? extends MongoPersistentEntity<?>, MongoPersistentProperty> mappingContext;
177-
private final ValueExpressionSupportHolder expressionSupport;
178-
179-
public MongoQueryLookupStrategy(MongoOperations operations,
177+
private MongoQueryLookupStrategy(MongoOperations operations,
180178
MappingContext<? extends MongoPersistentEntity<?>, MongoPersistentProperty> mappingContext,
181179
ValueExpressionSupportHolder expressionSupport) {
182180

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/ReactiveMongoRepositoryFactory.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -136,9 +136,10 @@ protected Object getTargetRepository(RepositoryInformation information) {
136136
@Override
137137
protected Optional<QueryLookupStrategy> getQueryLookupStrategy(@Nullable Key key,
138138
ValueExpressionSupportHolder valueExpressionSupportHolder) {
139-
return Optional.of(new MongoQueryLookupStrategy(operations, valueExpressionSupportHolder, mappingContext));
139+
return Optional.of(new MongoQueryLookupStrategy(operations, mappingContext, valueExpressionSupportHolder));
140140
}
141141

142+
@Override
142143
public <T, ID> MongoEntityInformation<T, ID> getEntityInformation(Class<T> domainClass) {
143144
return getEntityInformation(domainClass, null);
144145
}
@@ -159,18 +160,17 @@ private <T, ID> MongoEntityInformation<T, ID> getEntityInformation(Class<T> doma
159160
* @author Mark Paluch
160161
* @author Christoph Strobl
161162
*/
162-
private static class MongoQueryLookupStrategy implements QueryLookupStrategy {
163-
164-
private final ReactiveMongoOperations operations;
165-
private final MappingContext<? extends MongoPersistentEntity<?>, MongoPersistentProperty> mappingContext;
166-
private final ValueExpressionSupportHolder expressionSupportHolder;
163+
private record MongoQueryLookupStrategy(ReactiveMongoOperations operations,
164+
MappingContext<? extends MongoPersistentEntity<?>, MongoPersistentProperty> mappingContext,
165+
ValueExpressionSupportHolder expressionSupportHolder) implements QueryLookupStrategy {
167166

168-
MongoQueryLookupStrategy(ReactiveMongoOperations operations, ValueExpressionSupportHolder expressionSupportHolder,
169-
MappingContext<? extends MongoPersistentEntity<?>, MongoPersistentProperty> mappingContext) {
167+
private MongoQueryLookupStrategy(ReactiveMongoOperations operations,
168+
MappingContext<? extends MongoPersistentEntity<?>, MongoPersistentProperty> mappingContext,
169+
ValueExpressionSupportHolder expressionSupportHolder) {
170170

171171
this.operations = operations;
172-
this.expressionSupportHolder = new CachingValueExpressionSupportHolder(expressionSupportHolder);
173172
this.mappingContext = mappingContext;
173+
this.expressionSupportHolder = new CachingValueExpressionSupportHolder(expressionSupportHolder);
174174
}
175175

176176
@Override

spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedMongoQueryUnitTests.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@
5454
import org.springframework.data.projection.SpelAwareProxyProjectionFactory;
5555
import org.springframework.data.repository.Repository;
5656
import org.springframework.data.repository.core.support.DefaultRepositoryMetadata;
57-
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
5857
import org.springframework.data.repository.query.QueryMethodValueEvaluationContextProviderFactory;
5958
import org.springframework.data.repository.query.ReactiveExtensionAwareQueryMethodEvaluationContextProvider;
6059
import org.springframework.data.repository.query.ReactiveQueryMethodEvaluationContextProvider;
@@ -284,8 +283,7 @@ private ReactiveStringBasedMongoQuery createQueryForMethod(
284283
new DefaultRepositoryMetadata(SampleRepository.class), factory, converter.getMappingContext());
285284

286285
return new ReactiveStringBasedMongoQuery(queryMethod, operations, new ValueExpressionSupportHolder(
287-
new QueryMethodValueEvaluationContextProviderFactory(environment, QueryMethodEvaluationContextProvider.DEFAULT),
288-
PARSER));
286+
new QueryMethodValueEvaluationContextProviderFactory(environment, contextProvider), PARSER));
289287
}
290288

291289
private interface SampleRepository extends Repository<Person, Long> {

0 commit comments

Comments
 (0)