diff --git a/pom.xml b/pom.xml
index 8dc492635b..787aca7497 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-mongodb-parent
- 2.1.0.BUILD-SNAPSHOT
+ 2.1.0.DATAMONGO-1874-SNAPSHOT
pom
Spring Data MongoDB
@@ -27,7 +27,7 @@
multi
spring-data-mongodb
- 2.1.0.BUILD-SNAPSHOT
+ 2.1.0.DATACMNS-1260-SNAPSHOT
3.6.2
1.7.0
1.19
diff --git a/spring-data-mongodb-benchmarks/pom.xml b/spring-data-mongodb-benchmarks/pom.xml
index 9baccaa905..082bad60eb 100644
--- a/spring-data-mongodb-benchmarks/pom.xml
+++ b/spring-data-mongodb-benchmarks/pom.xml
@@ -7,7 +7,7 @@
org.springframework.data
spring-data-mongodb-parent
- 2.1.0.BUILD-SNAPSHOT
+ 2.1.0.DATAMONGO-1874-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb-cross-store/pom.xml b/spring-data-mongodb-cross-store/pom.xml
index 8ba393d38b..7fdbbdf3c0 100644
--- a/spring-data-mongodb-cross-store/pom.xml
+++ b/spring-data-mongodb-cross-store/pom.xml
@@ -6,7 +6,7 @@
org.springframework.data
spring-data-mongodb-parent
- 2.1.0.BUILD-SNAPSHOT
+ 2.1.0.DATAMONGO-1874-SNAPSHOT
../pom.xml
@@ -49,7 +49,7 @@
org.springframework.data
spring-data-mongodb
- 2.1.0.BUILD-SNAPSHOT
+ 2.1.0.DATAMONGO-1874-SNAPSHOT
diff --git a/spring-data-mongodb-distribution/pom.xml b/spring-data-mongodb-distribution/pom.xml
index e5c865ea08..71c7b1d193 100644
--- a/spring-data-mongodb-distribution/pom.xml
+++ b/spring-data-mongodb-distribution/pom.xml
@@ -13,7 +13,7 @@
org.springframework.data
spring-data-mongodb-parent
- 2.1.0.BUILD-SNAPSHOT
+ 2.1.0.DATAMONGO-1874-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb/pom.xml b/spring-data-mongodb/pom.xml
index 784df0dc8c..64345094ec 100644
--- a/spring-data-mongodb/pom.xml
+++ b/spring-data-mongodb/pom.xml
@@ -11,7 +11,7 @@
org.springframework.data
spring-data-mongodb-parent
- 2.1.0.BUILD-SNAPSHOT
+ 2.1.0.DATAMONGO-1874-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntity.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntity.java
index da45966bb3..9b709474a7 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntity.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntity.java
@@ -21,11 +21,6 @@
import java.util.HashMap;
import java.util.Map;
-import org.springframework.beans.BeansException;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
-import org.springframework.context.expression.BeanFactoryAccessor;
-import org.springframework.context.expression.BeanFactoryResolver;
import org.springframework.data.annotation.Id;
import org.springframework.data.mapping.Association;
import org.springframework.data.mapping.AssociationHandler;
@@ -38,7 +33,6 @@
import org.springframework.expression.ParserContext;
import org.springframework.expression.common.LiteralExpression;
import org.springframework.expression.spel.standard.SpelExpressionParser;
-import org.springframework.expression.spel.support.StandardEvaluationContext;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import org.springframework.util.ClassUtils;
@@ -55,7 +49,7 @@
* @author Mark Paluch
*/
public class BasicMongoPersistentEntity extends BasicPersistentEntity
- implements MongoPersistentEntity, ApplicationContextAware {
+ implements MongoPersistentEntity {
private static final String AMBIGUOUS_FIELD_MAPPING = "Ambiguous field mapping detected! Both %s and %s map to the same field name %s! Disambiguate using @Field annotation!";
private static final SpelExpressionParser PARSER = new SpelExpressionParser();
@@ -63,7 +57,6 @@ public class BasicMongoPersistentEntity extends BasicPersistentEntity typeInformation) {
Class> rawType = typeInformation.getType();
String fallback = MongoCollectionUtils.getPreferredCollectionName(rawType);
- this.context = new StandardEvaluationContext();
-
if (this.isAnnotationPresent(Document.class)) {
Document document = this.getRequiredAnnotation(Document.class);
@@ -95,23 +86,15 @@ public BasicMongoPersistentEntity(TypeInformation typeInformation) {
}
}
- /*
- * (non-Javadoc)
- * @see org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext)
- */
- public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
-
- context.addPropertyAccessor(new BeanFactoryAccessor());
- context.setBeanResolver(new BeanFactoryResolver(applicationContext));
- context.setRootObject(applicationContext);
- }
-
/*
* (non-Javadoc)
* @see org.springframework.data.mongodb.core.mapping.MongoPersistentEntity#getCollection()
*/
public String getCollection() {
- return expression == null ? collection : expression.getValue(context, String.class);
+
+ return expression == null //
+ ? collection //
+ : expression.getValue(getEvaluationContext(null), String.class);
}
/*
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/MongoMappingContext.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/MongoMappingContext.java
index 5ddb3d8e25..2284a55680 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/MongoMappingContext.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/MongoMappingContext.java
@@ -87,14 +87,7 @@ public MongoPersistentProperty createPersistentProperty(Property property, Basic
*/
@Override
protected BasicMongoPersistentEntity createPersistentEntity(TypeInformation typeInformation) {
-
- BasicMongoPersistentEntity entity = new BasicMongoPersistentEntity(typeInformation);
-
- if (context != null) {
- entity.setApplicationContext(context);
- }
-
- return entity;
+ return new BasicMongoPersistentEntity(typeInformation);
}
/*
@@ -103,6 +96,9 @@ protected BasicMongoPersistentEntity createPersistentEntity(TypeInformati
*/
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+
+ super.setApplicationContext(applicationContext);
+
this.context = applicationContext;
}
}
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/ExpressionEvaluatingParameterBinder.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/ExpressionEvaluatingParameterBinder.java
index a43b3b027f..230adbdb42 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/ExpressionEvaluatingParameterBinder.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/ExpressionEvaluatingParameterBinder.java
@@ -31,7 +31,7 @@
import org.bson.BSON;
import org.springframework.data.mongodb.repository.query.StringBasedMongoQuery.ParameterBinding;
-import org.springframework.data.repository.query.EvaluationContextProvider;
+import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
import org.springframework.expression.spel.standard.SpelExpressionParser;
@@ -56,7 +56,7 @@
class ExpressionEvaluatingParameterBinder {
private final SpelExpressionParser expressionParser;
- private final EvaluationContextProvider evaluationContextProvider;
+ private final QueryMethodEvaluationContextProvider evaluationContextProvider;
/**
* Creates new {@link ExpressionEvaluatingParameterBinder}
@@ -65,7 +65,7 @@ class ExpressionEvaluatingParameterBinder {
* @param evaluationContextProvider must not be {@literal null}.
*/
public ExpressionEvaluatingParameterBinder(SpelExpressionParser expressionParser,
- EvaluationContextProvider evaluationContextProvider) {
+ QueryMethodEvaluationContextProvider evaluationContextProvider) {
Assert.notNull(expressionParser, "ExpressionParser must not be null!");
Assert.notNull(evaluationContextProvider, "EvaluationContextProvider must not be null!");
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedMongoQuery.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedMongoQuery.java
index 4da0c0934d..5f70243f3f 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedMongoQuery.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedMongoQuery.java
@@ -27,7 +27,7 @@
import org.springframework.data.mongodb.repository.query.ExpressionEvaluatingParameterBinder.BindingContext;
import org.springframework.data.mongodb.repository.query.StringBasedMongoQuery.ParameterBinding;
import org.springframework.data.mongodb.repository.query.StringBasedMongoQuery.ParameterBindingParser;
-import org.springframework.data.repository.query.EvaluationContextProvider;
+import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.util.Assert;
@@ -62,13 +62,13 @@ public class ReactiveStringBasedMongoQuery extends AbstractReactiveMongoQuery {
* @param evaluationContextProvider must not be {@literal null}.
*/
public ReactiveStringBasedMongoQuery(ReactiveMongoQueryMethod method, ReactiveMongoOperations mongoOperations,
- SpelExpressionParser expressionParser, EvaluationContextProvider evaluationContextProvider) {
+ SpelExpressionParser expressionParser, QueryMethodEvaluationContextProvider evaluationContextProvider) {
this(method.getAnnotatedQuery(), method, mongoOperations, expressionParser, evaluationContextProvider);
}
/**
* Creates a new {@link ReactiveStringBasedMongoQuery} for the given {@link String}, {@link MongoQueryMethod},
- * {@link MongoOperations}, {@link SpelExpressionParser} and {@link EvaluationContextProvider}.
+ * {@link MongoOperations}, {@link SpelExpressionParser} and {@link QueryMethodEvaluationContextProvider}.
*
* @param query must not be {@literal null}.
* @param method must not be {@literal null}.
@@ -77,7 +77,7 @@ public ReactiveStringBasedMongoQuery(ReactiveMongoQueryMethod method, ReactiveMo
*/
public ReactiveStringBasedMongoQuery(String query, ReactiveMongoQueryMethod method,
ReactiveMongoOperations mongoOperations, SpelExpressionParser expressionParser,
- EvaluationContextProvider evaluationContextProvider) {
+ QueryMethodEvaluationContextProvider evaluationContextProvider) {
super(method, mongoOperations);
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/StringBasedMongoQuery.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/StringBasedMongoQuery.java
index 424a6cdbe2..13f0d864ea 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/StringBasedMongoQuery.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/StringBasedMongoQuery.java
@@ -28,7 +28,7 @@
import org.springframework.data.mongodb.core.query.BasicQuery;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.repository.query.ExpressionEvaluatingParameterBinder.BindingContext;
-import org.springframework.data.repository.query.EvaluationContextProvider;
+import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
@@ -70,13 +70,13 @@ public class StringBasedMongoQuery extends AbstractMongoQuery {
* @param evaluationContextProvider must not be {@literal null}.
*/
public StringBasedMongoQuery(MongoQueryMethod method, MongoOperations mongoOperations,
- SpelExpressionParser expressionParser, EvaluationContextProvider evaluationContextProvider) {
+ SpelExpressionParser expressionParser, QueryMethodEvaluationContextProvider evaluationContextProvider) {
this(method.getAnnotatedQuery(), method, mongoOperations, expressionParser, evaluationContextProvider);
}
/**
* Creates a new {@link StringBasedMongoQuery} for the given {@link String}, {@link MongoQueryMethod},
- * {@link MongoOperations}, {@link SpelExpressionParser} and {@link EvaluationContextProvider}.
+ * {@link MongoOperations}, {@link SpelExpressionParser} and {@link QueryMethodEvaluationContextProvider}.
*
* @param query must not be {@literal null}.
* @param method must not be {@literal null}.
@@ -84,7 +84,7 @@ public StringBasedMongoQuery(MongoQueryMethod method, MongoOperations mongoOpera
* @param expressionParser must not be {@literal null}.
*/
public StringBasedMongoQuery(String query, MongoQueryMethod method, MongoOperations mongoOperations,
- SpelExpressionParser expressionParser, EvaluationContextProvider evaluationContextProvider) {
+ SpelExpressionParser expressionParser, QueryMethodEvaluationContextProvider evaluationContextProvider) {
super(method, mongoOperations);
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactory.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactory.java
index 0090227457..268fec8b8a 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactory.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactory.java
@@ -39,7 +39,7 @@
import org.springframework.data.repository.core.support.RepositoryComposition.RepositoryFragments;
import org.springframework.data.repository.core.support.RepositoryFactorySupport;
import org.springframework.data.repository.core.support.RepositoryFragment;
-import org.springframework.data.repository.query.EvaluationContextProvider;
+import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
import org.springframework.data.repository.query.QueryLookupStrategy;
import org.springframework.data.repository.query.QueryLookupStrategy.Key;
import org.springframework.data.repository.query.RepositoryQuery;
@@ -131,7 +131,7 @@ protected Object getTargetRepository(RepositoryInformation information) {
*/
@Override
protected Optional getQueryLookupStrategy(@Nullable Key key,
- EvaluationContextProvider evaluationContextProvider) {
+ QueryMethodEvaluationContextProvider evaluationContextProvider) {
return Optional.of(new MongoQueryLookupStrategy(operations, evaluationContextProvider, mappingContext));
}
@@ -160,10 +160,10 @@ private MongoEntityInformation getEntityInformation(Class doma
private static class MongoQueryLookupStrategy implements QueryLookupStrategy {
private final MongoOperations operations;
- private final EvaluationContextProvider evaluationContextProvider;
+ private final QueryMethodEvaluationContextProvider evaluationContextProvider;
MappingContext extends MongoPersistentEntity>, MongoPersistentProperty> mappingContext;
- public MongoQueryLookupStrategy(MongoOperations operations, EvaluationContextProvider evaluationContextProvider,
+ public MongoQueryLookupStrategy(MongoOperations operations, QueryMethodEvaluationContextProvider evaluationContextProvider,
MappingContext extends MongoPersistentEntity>, MongoPersistentProperty> mappingContext) {
this.operations = operations;
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/ReactiveMongoRepositoryFactory.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/ReactiveMongoRepositoryFactory.java
index d5f234df32..9a82eb89e4 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/ReactiveMongoRepositoryFactory.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/ReactiveMongoRepositoryFactory.java
@@ -36,7 +36,7 @@
import org.springframework.data.repository.core.RepositoryInformation;
import org.springframework.data.repository.core.RepositoryMetadata;
import org.springframework.data.repository.core.support.ReactiveRepositoryFactorySupport;
-import org.springframework.data.repository.query.EvaluationContextProvider;
+import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
import org.springframework.data.repository.query.QueryLookupStrategy;
import org.springframework.data.repository.query.QueryLookupStrategy.Key;
import org.springframework.data.repository.query.RepositoryQuery;
@@ -99,7 +99,7 @@ protected Object getTargetRepository(RepositoryInformation information) {
*/
@Override
protected Optional getQueryLookupStrategy(@Nullable Key key,
- EvaluationContextProvider evaluationContextProvider) {
+ QueryMethodEvaluationContextProvider evaluationContextProvider) {
return Optional.of(new MongoQueryLookupStrategy(operations, evaluationContextProvider, mappingContext));
}
@@ -130,7 +130,7 @@ private MongoEntityInformation getEntityInformation(Class doma
private static class MongoQueryLookupStrategy implements QueryLookupStrategy {
private final ReactiveMongoOperations operations;
- private final EvaluationContextProvider evaluationContextProvider;
+ private final QueryMethodEvaluationContextProvider evaluationContextProvider;
private final MappingContext extends MongoPersistentEntity>, MongoPersistentProperty> mappingContext;
/*
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractMongoConfigurationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractMongoConfigurationUnitTests.java
index 39df34926c..a4964e1320 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractMongoConfigurationUnitTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractMongoConfigurationUnitTests.java
@@ -40,7 +40,8 @@
import org.springframework.data.mongodb.core.mapping.BasicMongoPersistentEntity;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
-import org.springframework.expression.spel.support.StandardEvaluationContext;
+import org.springframework.data.spel.EvaluationContextProvider;
+import org.springframework.data.spel.ExtensionAwareEvaluationContextProvider;
import org.springframework.test.util.ReflectionTestUtils;
import com.mongodb.MongoClient;
@@ -106,9 +107,10 @@ public void lifecycleCallbacksAreInvokedInAppropriateOrder() {
AbstractApplicationContext context = new AnnotationConfigApplicationContext(SampleMongoConfiguration.class);
MongoMappingContext mappingContext = context.getBean(MongoMappingContext.class);
BasicMongoPersistentEntity> entity = mappingContext.getRequiredPersistentEntity(Entity.class);
- StandardEvaluationContext spElContext = (StandardEvaluationContext) ReflectionTestUtils.getField(entity, "context");
+ EvaluationContextProvider provider = (EvaluationContextProvider) ReflectionTestUtils.getField(entity,
+ "evaluationContextProvider");
- assertThat(spElContext.getBeanResolver(), is(notNullValue()));
+ assertThat(provider, is(instanceOf(ExtensionAwareEvaluationContextProvider.class)));
context.close();
}
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationUnitTests.java
index 1a3510be9f..154f564b05 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationUnitTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationUnitTests.java
@@ -18,6 +18,9 @@
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
+import example.first.First;
+import example.second.Second;
+
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -37,16 +40,14 @@
import org.springframework.data.mongodb.core.mapping.BasicMongoPersistentEntity;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
-import org.springframework.expression.spel.support.StandardEvaluationContext;
+import org.springframework.data.spel.EvaluationContextProvider;
+import org.springframework.data.spel.ExtensionAwareEvaluationContextProvider;
import org.springframework.test.util.ReflectionTestUtils;
import com.mongodb.Mongo;
import com.mongodb.reactivestreams.client.MongoClient;
import com.mongodb.reactivestreams.client.MongoClients;
-import example.first.First;
-import example.second.Second;
-
/**
* Unit tests for {@link AbstractReactiveMongoConfiguration}.
*
@@ -106,9 +107,10 @@ public void lifecycleCallbacksAreInvokedInAppropriateOrder() {
AbstractApplicationContext context = new AnnotationConfigApplicationContext(SampleMongoConfiguration.class);
MongoMappingContext mappingContext = context.getBean(MongoMappingContext.class);
BasicMongoPersistentEntity> entity = mappingContext.getRequiredPersistentEntity(Entity.class);
- StandardEvaluationContext spElContext = (StandardEvaluationContext) ReflectionTestUtils.getField(entity, "context");
+ EvaluationContextProvider provider = (EvaluationContextProvider) ReflectionTestUtils.getField(entity,
+ "evaluationContextProvider");
- assertThat(spElContext.getBeanResolver(), is(notNullValue()));
+ assertThat(provider, is(instanceOf(ExtensionAwareEvaluationContextProvider.class)));
context.close();
}
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntityUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntityUnitTests.java
index af744e4a9c..5e9802bf94 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntityUnitTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntityUnitTests.java
@@ -31,6 +31,7 @@
import org.springframework.context.ApplicationContext;
import org.springframework.core.annotation.AliasFor;
import org.springframework.data.mapping.MappingException;
+import org.springframework.data.spel.ExtensionAwareEvaluationContextProvider;
import org.springframework.data.util.ClassTypeInformation;
/**
@@ -68,11 +69,10 @@ public void collectionAllowsReferencingSpringBean() {
provider.collectionName = "reference";
when(context.getBean("myBean")).thenReturn(provider);
- when(context.containsBean("myBean")).thenReturn(true);
BasicMongoPersistentEntity entity = new BasicMongoPersistentEntity(
ClassTypeInformation.from(DynamicallyMapped.class));
- entity.setApplicationContext(context);
+ entity.setEvaluationContextProvider(new ExtensionAwareEvaluationContextProvider(context));
assertThat(entity.getCollection(), is("reference"));
@@ -229,7 +229,7 @@ class Person extends Contact {}
@Document("#{35}")
class Company {}
- @Document("#{myBean.collectionName}")
+ @Document("#{@myBean.collectionName}")
class DynamicallyMapped {}
class CollectionProvider {
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ReactiveMongoRepositoryTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ReactiveMongoRepositoryTests.java
index 884974a1e6..82925163b0 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ReactiveMongoRepositoryTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ReactiveMongoRepositoryTests.java
@@ -54,7 +54,7 @@
import org.springframework.data.mongodb.repository.support.ReactiveMongoRepositoryFactory;
import org.springframework.data.mongodb.repository.support.SimpleReactiveMongoRepository;
import org.springframework.data.repository.Repository;
-import org.springframework.data.repository.query.DefaultEvaluationContextProvider;
+import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.util.ClassUtils;
@@ -96,7 +96,7 @@ public void setUp() throws Exception {
factory.setRepositoryBaseClass(SimpleReactiveMongoRepository.class);
factory.setBeanClassLoader(classLoader);
factory.setBeanFactory(beanFactory);
- factory.setEvaluationContextProvider(DefaultEvaluationContextProvider.INSTANCE);
+ factory.setEvaluationContextProvider(QueryMethodEvaluationContextProvider.DEFAULT);
repository = factory.getRepository(ReactivePersonRepository.class);
cappedRepository = factory.getRepository(ReactiveCappedCollectionRepository.class);
@@ -173,10 +173,9 @@ public void shouldFindByLastNameAndSort() {
@Test // DATAMONGO-1444
public void shouldUseTailableCursor() throws Exception {
- StepVerifier
- .create(template.dropCollection(Capped.class) //
- .then(template.createCollection(Capped.class, //
- CollectionOptions.empty().size(1000).maxDocuments(100).capped()))) //
+ StepVerifier.create(template.dropCollection(Capped.class) //
+ .then(template.createCollection(Capped.class, //
+ CollectionOptions.empty().size(1000).maxDocuments(100).capped()))) //
.expectNextCount(1) //
.verifyComplete();
@@ -198,10 +197,9 @@ public void shouldUseTailableCursor() throws Exception {
@Test // DATAMONGO-1444
public void shouldUseTailableCursorWithProjection() throws Exception {
- StepVerifier
- .create(template.dropCollection(Capped.class) //
- .then(template.createCollection(Capped.class, //
- CollectionOptions.empty().size(1000).maxDocuments(100).capped()))) //
+ StepVerifier.create(template.dropCollection(Capped.class) //
+ .then(template.createCollection(Capped.class, //
+ CollectionOptions.empty().size(1000).maxDocuments(100).capped()))) //
.expectNextCount(1) //
.verifyComplete();
@@ -245,9 +243,8 @@ public void findsPeopleByPageableLocationWithinCircle() {
dave.setLocation(point);
StepVerifier.create(repository.save(dave)).expectNextCount(1).verifyComplete();
- StepVerifier
- .create(repository.findByLocationWithin(new Circle(-78.99171, 45.738868, 170), //
- PageRequest.of(0, 10))) //
+ StepVerifier.create(repository.findByLocationWithin(new Circle(-78.99171, 45.738868, 170), //
+ PageRequest.of(0, 10))) //
.expectNext(dave) //
.verifyComplete();
}
@@ -275,10 +272,9 @@ public void findsPeoplePageableGeoresultByLocationWithinBox() {
dave.setLocation(point);
StepVerifier.create(repository.save(dave)).expectNextCount(1).verifyComplete();
- StepVerifier
- .create(repository.findByLocationNear(new Point(-73.99, 40.73), //
- new Distance(2000, Metrics.KILOMETERS), //
- PageRequest.of(0, 10))) //
+ StepVerifier.create(repository.findByLocationNear(new Point(-73.99, 40.73), //
+ new Distance(2000, Metrics.KILOMETERS), //
+ PageRequest.of(0, 10))) //
.consumeNextWith(actual -> {
assertThat(actual.getDistance().getValue(), is(closeTo(1, 1)));
@@ -293,9 +289,8 @@ public void findsPeopleByLocationWithinBox() {
dave.setLocation(point);
StepVerifier.create(repository.save(dave)).expectNextCount(1).verifyComplete();
- StepVerifier
- .create(repository.findPersonByLocationNear(new Point(-73.99, 40.73), //
- new Distance(2000, Metrics.KILOMETERS))) //
+ StepVerifier.create(repository.findPersonByLocationNear(new Point(-73.99, 40.73), //
+ new Distance(2000, Metrics.KILOMETERS))) //
.expectNext(dave) //
.verifyComplete();
}
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/SimpleReactiveMongoRepositoryTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/SimpleReactiveMongoRepositoryTests.java
index 40685fddd1..b88befa09f 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/SimpleReactiveMongoRepositoryTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/SimpleReactiveMongoRepositoryTests.java
@@ -44,7 +44,7 @@
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
import org.springframework.data.mongodb.repository.support.ReactiveMongoRepositoryFactory;
import org.springframework.data.mongodb.repository.support.SimpleReactiveMongoRepository;
-import org.springframework.data.repository.query.DefaultEvaluationContextProvider;
+import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.util.ClassUtils;
@@ -85,7 +85,7 @@ public void setUp() {
factory.setRepositoryBaseClass(SimpleReactiveMongoRepository.class);
factory.setBeanClassLoader(classLoader);
factory.setBeanFactory(beanFactory);
- factory.setEvaluationContextProvider(DefaultEvaluationContextProvider.INSTANCE);
+ factory.setEvaluationContextProvider(QueryMethodEvaluationContextProvider.DEFAULT);
repository = factory.getRepository(ReactivePersonRepostitory.class);
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedMongoQueryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedMongoQueryUnitTests.java
index 0d62bb63e7..67f967ce81 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedMongoQueryUnitTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/ReactiveStringBasedMongoQueryUnitTests.java
@@ -17,7 +17,6 @@
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
-import static org.mockito.Mockito.*;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@@ -49,7 +48,7 @@
import org.springframework.data.projection.SpelAwareProxyProjectionFactory;
import org.springframework.data.repository.Repository;
import org.springframework.data.repository.core.support.DefaultRepositoryMetadata;
-import org.springframework.data.repository.query.DefaultEvaluationContextProvider;
+import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
import org.springframework.expression.spel.standard.SpelExpressionParser;
/**
@@ -216,7 +215,7 @@ private ReactiveStringBasedMongoQuery createQueryForMethod(String name, Class>
ReactiveMongoQueryMethod queryMethod = new ReactiveMongoQueryMethod(method,
new DefaultRepositoryMetadata(SampleRepository.class), factory, converter.getMappingContext());
return new ReactiveStringBasedMongoQuery(queryMethod, operations, PARSER,
- DefaultEvaluationContextProvider.INSTANCE);
+ QueryMethodEvaluationContextProvider.DEFAULT);
}
private interface SampleRepository extends Repository {
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/StringBasedMongoQueryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/StringBasedMongoQueryUnitTests.java
index 0860ed7ae2..766d117bd2 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/StringBasedMongoQueryUnitTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/StringBasedMongoQueryUnitTests.java
@@ -52,7 +52,7 @@
import org.springframework.data.projection.SpelAwareProxyProjectionFactory;
import org.springframework.data.repository.Repository;
import org.springframework.data.repository.core.support.DefaultRepositoryMetadata;
-import org.springframework.data.repository.query.DefaultEvaluationContextProvider;
+import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
import org.springframework.expression.spel.standard.SpelExpressionParser;
/**
@@ -536,7 +536,7 @@ private StringBasedMongoQuery createQueryForMethod(String name, Class>... para
ProjectionFactory factory = new SpelAwareProxyProjectionFactory();
MongoQueryMethod queryMethod = new MongoQueryMethod(method, new DefaultRepositoryMetadata(SampleRepository.class),
factory, converter.getMappingContext());
- return new StringBasedMongoQuery(queryMethod, operations, PARSER, DefaultEvaluationContextProvider.INSTANCE);
+ return new StringBasedMongoQuery(queryMethod, operations, PARSER, QueryMethodEvaluationContextProvider.DEFAULT);
} catch (Exception e) {
throw new IllegalArgumentException(e.getMessage(), e);
diff --git a/spring-data-mongodb/src/test/resources/org/springframework/data/mongodb/repository/PersonRepositoryIntegrationTests-context.xml b/spring-data-mongodb/src/test/resources/org/springframework/data/mongodb/repository/PersonRepositoryIntegrationTests-context.xml
index 119940c359..426bc1d2e5 100644
--- a/spring-data-mongodb/src/test/resources/org/springframework/data/mongodb/repository/PersonRepositoryIntegrationTests-context.xml
+++ b/spring-data-mongodb/src/test/resources/org/springframework/data/mongodb/repository/PersonRepositoryIntegrationTests-context.xml
@@ -26,13 +26,8 @@
-
-
-
-
-
-
-
+
+