Skip to content

Commit c624860

Browse files
committed
Adopt to deprecation removals in Commons.
Closes #4837
1 parent 005a284 commit c624860

File tree

43 files changed

+118
-568
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+118
-568
lines changed

Diff for: spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/MappingMongoConverter.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@
7373
import org.springframework.data.mapping.model.PersistentEntityParameterValueProvider;
7474
import org.springframework.data.mapping.model.PropertyValueProvider;
7575
import org.springframework.data.mapping.model.SpELContext;
76-
import org.springframework.data.mapping.model.SpELExpressionParameterValueProvider;
7776
import org.springframework.data.mapping.model.ValueExpressionEvaluator;
7877
import org.springframework.data.mapping.model.ValueExpressionParameterValueProvider;
7978
import org.springframework.data.mongodb.CodecRegistryProvider;
@@ -2069,7 +2068,7 @@ public <T> T getPropertyValue(MongoPersistentProperty property) {
20692068
}
20702069

20712070
/**
2072-
* Extension of {@link SpELExpressionParameterValueProvider} to recursively trigger value conversion on the raw
2071+
* Extension of {@link ValueExpressionParameterValueProvider} to recursively trigger value conversion on the raw
20732072
* resolved SpEL value.
20742073
*
20752074
* @author Oliver Gierke

Diff for: spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/UnwrappedMongoPersistentEntity.java

-6
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,7 @@ public String getName() {
9898
return delegate.getName();
9999
}
100100

101-
@Override
102101
@Nullable
103-
@Deprecated
104-
public PreferredConstructor<T, MongoPersistentProperty> getPersistenceConstructor() {
105-
return delegate.getPersistenceConstructor();
106-
}
107-
108102
@Override
109103
public InstanceCreatorMetadata<MongoPersistentProperty> getInstanceCreatorMetadata() {
110104
return delegate.getInstanceCreatorMetadata();

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

+5-56
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,8 @@
2121
import org.bson.Document;
2222
import org.bson.codecs.configuration.CodecRegistry;
2323

24-
import org.springframework.core.env.StandardEnvironment;
2524
import org.springframework.data.expression.ValueEvaluationContextProvider;
2625
import org.springframework.data.expression.ValueExpression;
27-
import org.springframework.data.expression.ValueExpressionParser;
28-
import org.springframework.data.mapping.model.SpELExpressionEvaluator;
2926
import org.springframework.data.mapping.model.ValueExpressionEvaluator;
3027
import org.springframework.data.mongodb.core.ExecutableFindOperation.ExecutableFind;
3128
import org.springframework.data.mongodb.core.ExecutableFindOperation.FindWithQuery;
@@ -47,16 +44,10 @@
4744
import org.springframework.data.mongodb.util.json.ParameterBindingContext;
4845
import org.springframework.data.mongodb.util.json.ParameterBindingDocumentCodec;
4946
import org.springframework.data.repository.query.ParameterAccessor;
50-
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
51-
import org.springframework.data.repository.query.QueryMethodValueEvaluationContextAccessor;
5247
import org.springframework.data.repository.query.RepositoryQuery;
5348
import org.springframework.data.repository.query.ResultProcessor;
5449
import org.springframework.data.repository.query.ValueExpressionDelegate;
55-
import org.springframework.data.spel.ExpressionDependencies;
5650
import org.springframework.data.util.Lazy;
57-
import org.springframework.expression.EvaluationContext;
58-
import org.springframework.expression.ExpressionParser;
59-
import org.springframework.expression.spel.standard.SpelExpressionParser;
6051
import org.springframework.lang.Nullable;
6152
import org.springframework.util.Assert;
6253
import org.springframework.util.ObjectUtils;
@@ -84,36 +75,6 @@ public abstract class AbstractMongoQuery implements RepositoryQuery {
8475
private final ValueExpressionDelegate valueExpressionDelegate;
8576
private final ValueEvaluationContextProvider valueEvaluationContextProvider;
8677

87-
/**
88-
* Creates a new {@link AbstractMongoQuery} from the given {@link MongoQueryMethod} and {@link MongoOperations}.
89-
*
90-
* @param method must not be {@literal null}.
91-
* @param operations must not be {@literal null}.
92-
* @param expressionParser must not be {@literal null}.
93-
* @param evaluationContextProvider must not be {@literal null}.
94-
* @deprecated use the constructor version with {@link ValueExpressionDelegate}
95-
*/
96-
@Deprecated(since = "4.4.0")
97-
public AbstractMongoQuery(MongoQueryMethod method, MongoOperations operations, ExpressionParser expressionParser,
98-
QueryMethodEvaluationContextProvider evaluationContextProvider) {
99-
100-
Assert.notNull(operations, "MongoOperations must not be null");
101-
Assert.notNull(method, "MongoQueryMethod must not be null");
102-
Assert.notNull(expressionParser, "SpelExpressionParser must not be null");
103-
Assert.notNull(evaluationContextProvider, "QueryMethodEvaluationContextProvider must not be null");
104-
105-
this.method = method;
106-
this.operations = operations;
107-
108-
MongoEntityMetadata<?> metadata = method.getEntityInformation();
109-
Class<?> type = metadata.getCollectionEntity().getType();
110-
111-
this.executableFind = operations.query(type);
112-
this.executableUpdate = operations.update(type);
113-
this.valueExpressionDelegate = new ValueExpressionDelegate(new QueryMethodValueEvaluationContextAccessor(new StandardEnvironment(), evaluationContextProvider.getEvaluationContextProvider()), ValueExpressionParser.create(() -> expressionParser));
114-
this.valueEvaluationContextProvider = valueExpressionDelegate.createValueContextProvider(method.getParameters());
115-
}
116-
11778
/**
11879
* Creates a new {@link AbstractMongoQuery} from the given {@link MongoQueryMethod} and {@link MongoOperations}.
11980
*
@@ -185,7 +146,8 @@ protected Object doExecute(MongoQueryMethod method, ResultProcessor processor, C
185146
}
186147

187148
/**
188-
* If present apply the {@link com.mongodb.ReadPreference} from the {@link org.springframework.data.mongodb.repository.ReadPreference} annotation.
149+
* If present apply the {@link com.mongodb.ReadPreference} from the
150+
* {@link org.springframework.data.mongodb.repository.ReadPreference} annotation.
189151
*
190152
* @param query must not be {@literal null}.
191153
* @return never {@literal null}.
@@ -396,20 +358,6 @@ protected ParameterBindingDocumentCodec getParameterBindingCodec() {
396358
return codec.get();
397359
}
398360

399-
/**
400-
* Obtain a the {@link EvaluationContext} suitable to evaluate expressions backed by the given dependencies.
401-
*
402-
* @param dependencies must not be {@literal null}.
403-
* @param accessor must not be {@literal null}.
404-
* @return the {@link SpELExpressionEvaluator}.
405-
* @since 2.4
406-
*/
407-
protected SpELExpressionEvaluator getSpELExpressionEvaluatorFor(ExpressionDependencies dependencies,
408-
ConvertingParameterAccessor accessor) {
409-
410-
return new DefaultSpELExpressionEvaluator(new SpelExpressionParser(), valueEvaluationContextProvider.getEvaluationContext(accessor.getValues(), dependencies).getEvaluationContext());
411-
}
412-
413361
/**
414362
* Obtain a {@link ValueExpressionEvaluator} suitable to evaluate expressions.
415363
*
@@ -418,8 +366,9 @@ protected SpELExpressionEvaluator getSpELExpressionEvaluatorFor(ExpressionDepend
418366
* @since 4.4.0
419367
*/
420368
protected ValueExpressionEvaluator getExpressionEvaluatorFor(MongoParameterAccessor accessor) {
421-
return new ValueExpressionDelegateValueExpressionEvaluator(valueExpressionDelegate, (ValueExpression expression) ->
422-
valueEvaluationContextProvider.getEvaluationContext(accessor.getValues(), expression.getExpressionDependencies()));
369+
return new ValueExpressionDelegateValueExpressionEvaluator(valueExpressionDelegate,
370+
(ValueExpression expression) -> valueEvaluationContextProvider.getEvaluationContext(accessor.getValues(),
371+
expression.getExpressionDependencies()));
423372
}
424373

425374
/**

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

+12-72
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import reactor.core.publisher.Flux;
1919
import reactor.core.publisher.Mono;
20+
import reactor.util.function.Tuple2;
2021

2122
import java.util.ArrayList;
2223
import java.util.List;
@@ -26,14 +27,11 @@
2627
import org.reactivestreams.Publisher;
2728

2829
import org.springframework.core.convert.converter.Converter;
29-
import org.springframework.core.env.StandardEnvironment;
3030
import org.springframework.data.expression.ReactiveValueEvaluationContextProvider;
3131
import org.springframework.data.expression.ValueEvaluationContext;
3232
import org.springframework.data.expression.ValueEvaluationContextProvider;
3333
import org.springframework.data.expression.ValueExpression;
34-
import org.springframework.data.expression.ValueExpressionParser;
3534
import org.springframework.data.mapping.model.EntityInstantiators;
36-
import org.springframework.data.mapping.model.SpELExpressionEvaluator;
3735
import org.springframework.data.mapping.model.ValueExpressionEvaluator;
3836
import org.springframework.data.mongodb.core.MongoOperations;
3937
import org.springframework.data.mongodb.core.ReactiveFindOperation.FindWithProjection;
@@ -55,22 +53,17 @@
5553
import org.springframework.data.mongodb.util.json.ParameterBindingContext;
5654
import org.springframework.data.mongodb.util.json.ParameterBindingDocumentCodec;
5755
import org.springframework.data.repository.query.ParameterAccessor;
58-
import org.springframework.data.repository.query.QueryMethodValueEvaluationContextAccessor;
59-
import org.springframework.data.repository.query.ReactiveQueryMethodEvaluationContextProvider;
6056
import org.springframework.data.repository.query.RepositoryQuery;
6157
import org.springframework.data.repository.query.ResultProcessor;
6258
import org.springframework.data.repository.query.ValueExpressionDelegate;
6359
import org.springframework.data.spel.ExpressionDependencies;
6460
import org.springframework.data.util.TypeInformation;
65-
import org.springframework.expression.ExpressionParser;
66-
import org.springframework.expression.spel.standard.SpelExpressionParser;
6761
import org.springframework.lang.Nullable;
6862
import org.springframework.util.Assert;
6963
import org.springframework.util.ObjectUtils;
7064
import org.springframework.util.StringUtils;
7165

7266
import com.mongodb.MongoClientSettings;
73-
import reactor.util.function.Tuple2;
7467

7568
/**
7669
* Base class for reactive {@link RepositoryQuery} implementations for MongoDB.
@@ -90,41 +83,6 @@ public abstract class AbstractReactiveMongoQuery implements RepositoryQuery {
9083
private final ValueExpressionDelegate valueExpressionDelegate;
9184
private final ReactiveValueEvaluationContextProvider valueEvaluationContextProvider;
9285

93-
/**
94-
* Creates a new {@link AbstractReactiveMongoQuery} from the given {@link MongoQueryMethod} and
95-
* {@link MongoOperations}.
96-
*
97-
* @param method must not be {@literal null}.
98-
* @param operations must not be {@literal null}.
99-
* @param expressionParser must not be {@literal null}.
100-
* @param evaluationContextProvider must not be {@literal null}.
101-
* @deprecated use the constructor version with {@link ValueExpressionDelegate}
102-
*/
103-
@Deprecated(since = "4.4.0")
104-
public AbstractReactiveMongoQuery(ReactiveMongoQueryMethod method, ReactiveMongoOperations operations,
105-
ExpressionParser expressionParser, ReactiveQueryMethodEvaluationContextProvider evaluationContextProvider) {
106-
107-
Assert.notNull(method, "MongoQueryMethod must not be null");
108-
Assert.notNull(operations, "ReactiveMongoOperations must not be null");
109-
Assert.notNull(expressionParser, "SpelExpressionParser must not be null");
110-
Assert.notNull(evaluationContextProvider, "ReactiveEvaluationContextExtension must not be null");
111-
112-
this.method = method;
113-
this.operations = operations;
114-
this.instantiators = new EntityInstantiators();
115-
this.valueExpressionDelegate = new ValueExpressionDelegate(new QueryMethodValueEvaluationContextAccessor(new StandardEnvironment(), evaluationContextProvider.getEvaluationContextProvider()), ValueExpressionParser.create(() -> expressionParser));
116-
117-
MongoEntityMetadata<?> metadata = method.getEntityInformation();
118-
Class<?> type = metadata.getCollectionEntity().getType();
119-
120-
this.findOperationWithProjection = operations.query(type);
121-
this.updateOps = operations.update(type);
122-
ValueEvaluationContextProvider valueContextProvider = valueExpressionDelegate.createValueContextProvider(
123-
method.getParameters());
124-
Assert.isInstanceOf(ReactiveValueEvaluationContextProvider.class, valueContextProvider, "ValueEvaluationContextProvider must be reactive");
125-
this.valueEvaluationContextProvider = (ReactiveValueEvaluationContextProvider) valueContextProvider;
126-
}
127-
12886
/**
12987
* Creates a new {@link AbstractReactiveMongoQuery} from the given {@link MongoQueryMethod} and
13088
* {@link MongoOperations}.
@@ -151,9 +109,10 @@ public AbstractReactiveMongoQuery(ReactiveMongoQueryMethod method, ReactiveMongo
151109

152110
this.findOperationWithProjection = operations.query(type);
153111
this.updateOps = operations.update(type);
154-
ValueEvaluationContextProvider valueContextProvider = valueExpressionDelegate.createValueContextProvider(
155-
method.getParameters());
156-
Assert.isInstanceOf(ReactiveValueEvaluationContextProvider.class, valueContextProvider, "ValueEvaluationContextProvider must be reactive");
112+
ValueEvaluationContextProvider valueContextProvider = valueExpressionDelegate
113+
.createValueContextProvider(method.getParameters());
114+
Assert.isInstanceOf(ReactiveValueEvaluationContextProvider.class, valueContextProvider,
115+
"ValueEvaluationContextProvider must be reactive");
157116
this.valueEvaluationContextProvider = (ReactiveValueEvaluationContextProvider) valueContextProvider;
158117
}
159118

@@ -439,8 +398,8 @@ private Mono<Tuple2<ValueExpressionEvaluator, ParameterBindingDocumentCodec>> ex
439398
return getValueExpressionEvaluatorLater(dependencies, accessor).zipWith(Mono.just(codec));
440399
}
441400

442-
private Document decode(Tuple2<ValueExpressionEvaluator, ParameterBindingDocumentCodec> expressionEvaluator, String source, MongoParameterAccessor accessor,
443-
ParameterBindingDocumentCodec codec) {
401+
private Document decode(Tuple2<ValueExpressionEvaluator, ParameterBindingDocumentCodec> expressionEvaluator,
402+
String source, MongoParameterAccessor accessor, ParameterBindingDocumentCodec codec) {
444403

445404
ParameterBindingContext bindingContext = new ParameterBindingContext(accessor::getBindableValue,
446405
expressionEvaluator.getT1());
@@ -457,26 +416,6 @@ protected Mono<ParameterBindingDocumentCodec> getParameterBindingCodec() {
457416
return getCodecRegistry().map(ParameterBindingDocumentCodec::new);
458417
}
459418

460-
/**
461-
* Obtain a {@link Mono publisher} emitting the {@link SpELExpressionEvaluator} suitable to evaluate expressions
462-
* backed by the given dependencies.
463-
*
464-
* @param dependencies must not be {@literal null}.
465-
* @param accessor must not be {@literal null}.
466-
* @return a {@link Mono} emitting the {@link SpELExpressionEvaluator} when ready.
467-
* @since 3.4
468-
* @deprecated since 4.4.0, use
469-
* {@link #getValueExpressionEvaluatorLater(ExpressionDependencies, MongoParameterAccessor)} instead
470-
*/
471-
@Deprecated(since = "4.4.0")
472-
protected Mono<SpELExpressionEvaluator> getSpelEvaluatorFor(ExpressionDependencies dependencies,
473-
MongoParameterAccessor accessor) {
474-
return valueEvaluationContextProvider.getEvaluationContextLater(accessor.getValues(), dependencies)
475-
.map(evaluationContext -> (SpELExpressionEvaluator) new DefaultSpELExpressionEvaluator(
476-
new SpelExpressionParser(), evaluationContext.getEvaluationContext()))
477-
.defaultIfEmpty(DefaultSpELExpressionEvaluator.unsupported());
478-
}
479-
480419
/**
481420
* Obtain a {@link ValueExpressionEvaluator} suitable to evaluate expressions.
482421
*
@@ -490,8 +429,8 @@ ValueExpressionEvaluator getValueExpressionEvaluator(MongoParameterAccessor acce
490429
@Override
491430
public <T> T evaluate(String expressionString) {
492431
ValueExpression expression = valueExpressionDelegate.parse(expressionString);
493-
ValueEvaluationContext evaluationContext = valueEvaluationContextProvider.getEvaluationContext(accessor.getValues(),
494-
expression.getExpressionDependencies());
432+
ValueEvaluationContext evaluationContext = valueEvaluationContextProvider
433+
.getEvaluationContext(accessor.getValues(), expression.getExpressionDependencies());
495434
return (T) expression.evaluate(evaluationContext);
496435
}
497436
};
@@ -509,8 +448,9 @@ public <T> T evaluate(String expressionString) {
509448
protected Mono<ValueExpressionEvaluator> getValueExpressionEvaluatorLater(ExpressionDependencies dependencies,
510449
MongoParameterAccessor accessor) {
511450

512-
return valueEvaluationContextProvider.getEvaluationContextLater(accessor.getValues(), dependencies)
513-
.map(evaluationContext -> new ValueExpressionDelegateValueExpressionEvaluator(valueExpressionDelegate, valueExpression -> evaluationContext));
451+
return valueEvaluationContextProvider.getEvaluationContextLater(accessor.getValues(), dependencies)
452+
.map(evaluationContext -> new ValueExpressionDelegateValueExpressionEvaluator(valueExpressionDelegate,
453+
valueExpression -> evaluationContext));
514454
}
515455

516456
/**

Diff for: spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/DefaultSpELExpressionEvaluator.java

-69
This file was deleted.

0 commit comments

Comments
 (0)