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.
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<Object>(doExecuteQuery(query), accessor.getPageable(), count);
|
||||
}
|
||||
@@ -255,7 +255,7 @@ public abstract class AbstractMongoQuery implements RepositoryQuery {
|
||||
}
|
||||
|
||||
MongoEntityInformation<?, ?> entityInformation = method.getEntityInformation();
|
||||
return (GeoResults<Object>) mongoOperations.geoNear(nearQuery, entityInformation.getJavaType(),
|
||||
return (GeoResults<Object>) operations.geoNear(nearQuery, entityInformation.getJavaType(),
|
||||
entityInformation.getCollectionName());
|
||||
}
|
||||
|
||||
|
||||
@@ -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<T extends Repository<S, ID>, S, ID extends Serializable> extends
|
||||
RepositoryFactoryBeanSupport<T, S, ID> {
|
||||
|
||||
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<T extends Repository<S, ID>, 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<T extends Repository<S, ID>, 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<T extends Repository<S, ID>, S, ID exten
|
||||
public void afterPropertiesSet() {
|
||||
|
||||
super.afterPropertiesSet();
|
||||
Assert.notNull(template, "MongoTemplate must not be null!");
|
||||
Assert.notNull(operations, "MongoTemplate must not be null!");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<QueryCreationListener<?>> 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();
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
</bean>
|
||||
|
||||
<bean class="org.springframework.data.mongodb.repository.support.MongoRepositoryFactoryBean">
|
||||
<property name="template" ref="mongoTemplate"/>
|
||||
<property name="mongoOperations" ref="mongoTemplate"/>
|
||||
<property name="repositoryInterface" value="org.springframework.data.mongodb.repository.PersonRepository"/>
|
||||
<property name="namedQueries">
|
||||
<bean class="org.springframework.data.repository.core.support.PropertiesBasedNamedQueries">
|
||||
|
||||
Reference in New Issue
Block a user