From 289c4b95ae2e3a9b5e329548edfc292c6f524b53 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Fri, 10 Feb 2012 17:11:27 +0100 Subject: [PATCH] DATAMONGO-397 - Replaced references to MongoTemplate with MongoOperations in repository package. The reference in MongoRepositoryFactoryBean to MongoTemplate was unnecessary on the one hand and could cause problems in case the MongoTemplate is proxied as it can't be wired into the factory anymore then. --- .../config/MongoRepositoryConfigParser.java | 2 +- .../repository/query/AbstractMongoQuery.java | 26 +++++++++---------- .../support/MongoRepositoryFactoryBean.java | 24 ++++++++--------- .../MongoRepositoryFactoryBeanUnitTests.java | 13 +++++----- ...rsonRepositoryIntegrationTests-context.xml | 2 +- 5 files changed, 33 insertions(+), 34 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/config/MongoRepositoryConfigParser.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/config/MongoRepositoryConfigParser.java index b3e28bad5..5c4841f03 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/config/MongoRepositoryConfigParser.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/config/MongoRepositoryConfigParser.java @@ -48,7 +48,7 @@ public class MongoRepositoryConfigParser extends protected void postProcessBeanDefinition(MongoRepositoryConfiguration context, BeanDefinitionBuilder builder, BeanDefinitionRegistry registry, Object beanSource) { - builder.addPropertyReference("template", context.getMongoTemplateRef()); + builder.addPropertyReference("mongoOperations", context.getMongoTemplateRef()); builder.addPropertyValue("createIndexesForQueryMethods", context.getCreateQueryIndexes()); } } diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java index acff36a5b..ce7406cc2 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java @@ -42,21 +42,21 @@ import org.springframework.util.Assert; public abstract class AbstractMongoQuery implements RepositoryQuery { private final MongoQueryMethod method; - private final MongoOperations mongoOperations; + private final MongoOperations operations; /** * Creates a new {@link AbstractMongoQuery} from the given {@link MongoQueryMethod} and {@link MongoOperations}. * * @param method must not be {@literal null}. - * @param template must not be {@literal null}. + * @param operations must not be {@literal null}. */ - public AbstractMongoQuery(MongoQueryMethod method, MongoOperations template) { + public AbstractMongoQuery(MongoQueryMethod method, MongoOperations operations) { - Assert.notNull(template); + Assert.notNull(operations); Assert.notNull(method); this.method = method; - this.mongoOperations = template; + this.operations = operations; } /* @@ -74,12 +74,12 @@ public abstract class AbstractMongoQuery implements RepositoryQuery { public Object execute(Object[] parameters) { MongoParameterAccessor accessor = new MongoParametersParameterAccessor(method, parameters); - Query query = createQuery(new ConvertingParameterAccessor(mongoOperations.getConverter(), accessor)); + Query query = createQuery(new ConvertingParameterAccessor(operations.getConverter(), accessor)); if (method.isGeoNearQuery() && method.isPageQuery()) { MongoParameterAccessor countAccessor = new MongoParametersParameterAccessor(method, parameters); - Query countQuery = createCountQuery(new ConvertingParameterAccessor(mongoOperations.getConverter(), countAccessor)); + Query countQuery = createCountQuery(new ConvertingParameterAccessor(operations.getConverter(), countAccessor)); return new GeoNearExecution(accessor).execute(query, countQuery); } else if (method.isGeoNearQuery()) { @@ -122,7 +122,7 @@ public abstract class AbstractMongoQuery implements RepositoryQuery { MongoEntityInformation metadata = method.getEntityInformation(); String collectionName = metadata.getCollectionName(); - return mongoOperations.find(query, metadata.getJavaType(), collectionName); + return operations.find(query, metadata.getJavaType(), collectionName); } } @@ -172,9 +172,9 @@ public abstract class AbstractMongoQuery implements RepositoryQuery { Object execute(Query query) { MongoEntityInformation metadata = method.getEntityInformation(); - long count = mongoOperations.count(query, metadata.getCollectionName()); + long count = operations.count(query, metadata.getCollectionName()); - List result = mongoOperations.find(applyPagination(query, pageable), metadata.getJavaType(), + List result = operations.find(applyPagination(query, pageable), metadata.getJavaType(), metadata.getCollectionName()); return new PageImpl(result, pageable, count); @@ -196,7 +196,7 @@ public abstract class AbstractMongoQuery implements RepositoryQuery { Object execute(Query query) { MongoEntityInformation entityInformation = method.getEntityInformation(); - return mongoOperations.findOne(query, entityInformation.getJavaType()); + return operations.findOne(query, entityInformation.getJavaType()); } } @@ -234,7 +234,7 @@ public abstract class AbstractMongoQuery implements RepositoryQuery { Object execute(Query query, Query countQuery) { MongoEntityInformation information = method.getEntityInformation(); - long count = mongoOperations.count(countQuery, information.getCollectionName()); + long count = operations.count(countQuery, information.getCollectionName()); return new GeoPage(doExecuteQuery(query), accessor.getPageable(), count); } @@ -255,7 +255,7 @@ public abstract class AbstractMongoQuery implements RepositoryQuery { } MongoEntityInformation entityInformation = method.getEntityInformation(); - return (GeoResults) mongoOperations.geoNear(nearQuery, entityInformation.getJavaType(), + return (GeoResults) operations.geoNear(nearQuery, entityInformation.getJavaType(), entityInformation.getCollectionName()); } diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryBean.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryBean.java index 44f157534..2176290a8 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryBean.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryBean.java @@ -17,7 +17,7 @@ package org.springframework.data.mongodb.repository.support; import java.io.Serializable; -import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.repository.MongoRepository; import org.springframework.data.repository.Repository; import org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport; @@ -32,17 +32,17 @@ import org.springframework.util.Assert; public class MongoRepositoryFactoryBean, S, ID extends Serializable> extends RepositoryFactoryBeanSupport { - private MongoTemplate template; + private MongoOperations operations; private boolean createIndexesForQueryMethods = false; /** - * Configures the {@link MongoTemplate} to be used. + * Configures the {@link MongoOperations} to be used. * - * @param template the template to set + * @param operations the operations to set */ - public void setTemplate(MongoTemplate template) { + public void setMongoOperations(MongoOperations operations) { - this.template = template; + this.operations = operations; } /** @@ -64,10 +64,10 @@ public class MongoRepositoryFactoryBean, S, ID exten @Override protected final RepositoryFactorySupport createRepositoryFactory() { - RepositoryFactorySupport factory = getFactoryInstance(template); + RepositoryFactorySupport factory = getFactoryInstance(operations); if (createIndexesForQueryMethods) { - factory.addQueryCreationListener(new IndexEnsuringQueryCreationListener(template)); + factory.addQueryCreationListener(new IndexEnsuringQueryCreationListener(operations)); } return factory; @@ -76,11 +76,11 @@ public class MongoRepositoryFactoryBean, S, ID exten /** * Creates and initializes a {@link RepositoryFactorySupport} instance. * - * @param template + * @param operations * @return */ - protected RepositoryFactorySupport getFactoryInstance(MongoTemplate template) { - return new MongoRepositoryFactory(template); + protected RepositoryFactorySupport getFactoryInstance(MongoOperations operations) { + return new MongoRepositoryFactory(operations); } /* @@ -94,6 +94,6 @@ public class MongoRepositoryFactoryBean, S, ID exten public void afterPropertiesSet() { super.afterPropertiesSet(); - Assert.notNull(template, "MongoTemplate must not be null!"); + Assert.notNull(operations, "MongoTemplate must not be null!"); } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryBeanUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryBeanUnitTests.java index f415f3b86..d6bbf5b96 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryBeanUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/MongoRepositoryFactoryBeanUnitTests.java @@ -15,9 +15,9 @@ */ package org.springframework.data.mongodb.repository.support; -import static org.mockito.Mockito.*; -import static org.junit.Assert.*; import static org.hamcrest.CoreMatchers.*; +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; import java.util.List; @@ -26,9 +26,8 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.springframework.data.mapping.context.MappingContext; -import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.convert.MongoConverter; -import org.springframework.data.mongodb.repository.support.MongoRepositoryFactoryBean; import org.springframework.data.repository.core.support.QueryCreationListener; import org.springframework.data.repository.core.support.RepositoryFactorySupport; import org.springframework.test.util.ReflectionTestUtils; @@ -42,7 +41,7 @@ import org.springframework.test.util.ReflectionTestUtils; public class MongoRepositoryFactoryBeanUnitTests { @Mock - MongoTemplate template; + MongoOperations operations; @Mock MongoConverter converter; @@ -74,10 +73,10 @@ public class MongoRepositoryFactoryBeanUnitTests { @SuppressWarnings({ "unchecked", "rawtypes" }) private List> getListenersFromFactory(MongoRepositoryFactoryBean factoryBean) { - when(template.getConverter()).thenReturn(converter); + when(operations.getConverter()).thenReturn(converter); when(converter.getMappingContext()).thenReturn(context); - factoryBean.setTemplate(template); + factoryBean.setMongoOperations(operations); factoryBean.afterPropertiesSet(); RepositoryFactorySupport factory = factoryBean.createRepositoryFactory(); 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 33c48ce36..a1bffb752 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 @@ -17,7 +17,7 @@ - +